接触安全快半年了,这几天才正式挖到一个SRC,还是个低危的XSS漏洞,很菜鸡对吧?我也这么觉得。所以对于这本测试簿的质量希望看到的人不要抱太大的期望,大佬能提点意见,指点指点小白。小小白看见了能有所收获,有疑问和不足也能反馈给我。也许把标题改为小白测试簿应该会更好,haha~
打开一个网站,如何开始挖掘SRC?这对于新手小白来说,是一个问题。我开始(也就是近几个星期)SRC挖掘的时候,也是懵懵懂懂的,见到搜索栏试试XSS和SQL注入,打开burp麻木的forward。没什么条理,效率也就可想而知了,一度被打击到自闭。
所以,我个人觉得需要整理一下自己的渗透测试流程。尝试形成适合自己的SRC挖掘习惯,顺便整理整理些知识点。
基础测试
1.扫目录,找后台
对于一个SRC挖掘者来说,怎样挖掘效率最高,对网站的威胁最大,我们也就怎么开始挖掘。毫无疑问,如果能直接登陆到网站后台,这无疑是极好的,直接挖到一个SRC顺便还能扩大扩大战果,这无疑是极好的。
1.1 扫目录
通过扫目录,我们或许可以获取到一些敏感信息,这将有利于我们的挖掘。这一步骤中藏着一些惊喜,比如robots.txt,.git,.svn/entries,bak,网站源码甚至数据库文件泄露。这才是一夜暴富的打开方式。如果没有中奖,能找到后台登陆界面也是极好的,找不到的话再说。<br /> 目录扫描,可以用御剑和dirsearch。经典款的御剑效果不太理想,不过胜在速度够快。如果想要更详细的扫描,御剑1.5是一个不错的选择。<br />.svn漏洞
/.svn/entries 访问该目录即可查看是否有svn泄露漏洞,访问/.svn/format应该也行? 网上有svn利用工具:Seay-svn,等遇到了再看看需不需要下载吧。
.git漏洞
/.git 文件 利用工具: dvcs-ripper:基于perl的工具,除了git还支持很多版本管理系统 rip-git.pl -v -u http://www.example.com/.git/ GitHack: GitHack.py http://www.example.com/.git/
.hg漏洞
.hg 文件 利用工具: dvcs-ripper同上~
.bzr漏洞
.bzr 利用方法百度吧~
.rar .zip .7z .tar.gz .bak .swp .txt .html 备份文件泄露
可以用{常用文件名}+{常用压缩包后缀}的方式扫描网站
网页的临时备份文件, 可以扫描对应页面的.swp或者.bak等后缀
更多可以参考这个网站:https://blog.csdn.net/weixin_42312274/article/details/81099021
dirsearch
dirsearch.py -u www.baidu.com -e php -u 指定url -e 指定网站语言 -w 加上自己的字典 -r 递归跑目录,不过很慢,不推荐 —random-agents 使用代理,代理目录在user-agents.txt中,这个对于扫多了导致自己IP被封锁应该有用,没试过。
1.2 找后台
如果扫目录和简单的浏览网页找不到后台,还可以借助百度谷歌进行查找。<br /> 语法如下:<br />`site:目标站 intitle:后台|管理|登录|管理员|管理中心|admin|login|验证码 inurl:admin|login|user`<br /> 如果这也找不到的话,可以尝试猜解后台页面,常用的后台目录:<br /> Admin Adminlogin name_login admin_login admin/admin_login manage user system ...
2.万能密码与爆破
2.1 万能密码
对于很多网站,可以使用万能密码尝试,往往有惊喜。<br />asp aspx
“or “a”=”a
‘.).or.(‘.a.’=’.a
or 1=1—
‘or 1=1—
php
admin’/ password/‘ ‘ or ‘1’=’1 “ or “1”=”1 or 1=1# or 1=1—
2.2 爆破
对于没有验证码或者验证码存在逻辑漏洞的登陆界面,可以使用爆破来尝试登陆。<br /> 这里我用burp intruder来爆破,也可以使用hydra。<br /> 这里最重要的是一份字典,我们可以通过社工获得的信息来生成字典。
3.XSS
在后台无法登陆的情况下,我们就只能先尝试常规漏洞了。<br /> XSS的测试很简单,GitHub上有一个XSS字典,我们可以用他进行粗测,当然这样效率虽然高但是学不到什么东西。<br />[https://github.com/TheKingOfDuck/easyXssPayload/blob/master/easyXssPayload.txt](https://github.com/TheKingOfDuck/easyXssPayload/blob/master/easyXssPayload.txt)<br /> 通过这份字典,我们可以快速的完成xss的测试。
4.SQL注入
说实话,SQL注入场景就比较多了,只要是参数都有可能存在SQL注入。<br /> 我们不可能将每个参数都测试一遍,那样耗时太多了。<br /> 不过SQL注入一般存在查找数据,添加数据的地方,比如?id=1<br />测试方法:<br />字符型:
a’ //触发错误,返回数据库错误 a’ or ‘1’=’1 //永真条件,返回所有记录 a’) or (‘1’=1 a’ or ‘1’=’2 //空条件,返回原来相同结果 a’) or (‘1’=2 a’ and ‘1’=’2 //永假条件,不返回记录 a’) and (‘1’=’2
数字型:
‘ //触发错误,返回数据库错误 1+1 //返回原来不相同的结果 1+0 //返回原来相同的结果 1 or 1=1 //永真条件,返回所有记录 1) or (1=1
1 or 1=2 //空条件,返回原来相同的结果 1) or (1=2 1 and 1=2 //永假条件,不返回记录 1) and (1=2
有些时候,SQL注入点会有变种,比如“,)等等而不是单纯的单引号,也有可能是各个符号的混合体,比如`"))`,像这种就很难测了不宜花太多时间死磕。<br /> 如果存在注入点,可以用sqlmap跑一跑。<br /> 有waf跑不出来再尝试绕过手工注入或者脚本。
5.URL跳转漏洞
标志:[https://www.example.com/redirect.php?url=http://xxx.example.com](https://www.example.com/redirect.php?url=http://xxx.example.com)<br /> 常见于登录认证跳转和分享收藏等位置。<br /> 常见的参数名:<br /> redirect redirect_to redirect_url url jump jump_to target to ink linkto domain<br /> 测试方法:如果我们直接修改http能成功跳转的话那不要太美滋滋。不过大多数情况不是这样的,如果后端进行了校验只能跳转到本域名的话就需要绕过了。<br />以下是常规的绕过方式:
? url特性忽略问号而后端又可以识别,通过?截断可以绕过判定或正则。 url=https://www.baidu.com/?[https://domain.com](https://domain.com) https://www.landgrey.me/redirect.php?url=http://www.landgrey.me.www.evil.com/untrust.html https://www.landgrey.me/redirect.php?url=http://www.evil.com/www.landgrey.me https://www.landgrey.me/redirect.php?url=https://auth.landgrey.me/jump.do?url=evil.com https://landgrey.me/%2Fevil%2Ecom https://landgrey.me/redirect.php?url=////www.evil.com/.. https://landgrey.me/redirect.php?url=http://www.evil.com.landgrey.me
手工测试时,主要结合目标对输入的跳转处理和提示,根据经验来绕过;
自动化测试时,通常是根据目标和规则,事先生成payload,用工具(如burpsuite)在漏洞点处自动发包测试; 要达到绕过效果,主要涉及以下9个特殊字符: “;”, “/“, “”, “?”, “:”, “@”, “=”, “&”, “.”
参考:https://landgrey.me/open-redirect-bypass/
6.目录遍历、文件包含
特征:<br /> ?page=a.php<br /> ?home=b.html<br /> ?file=content<br /> 测试方法:<br /> ?file=../../../../etc/passwd<br /> ?page=file:///etc/passwd<br /> ?home=main.cgi<br /> ?page=http://www.a.com/1.php<br /> [http://1.1.1.1/../../../../dir/file.txt](http://1.1.1.1/../../../../dir/file.txt)<br /> 这个理论性应该能行,有过滤再考虑绕过吧。
7.SSRF
特征:www.xxx.com/a.php?image=http://www.abc.com/1.jpg<br /> 常见位置:<br /> 分享、转码服务、在线翻译、图片下载、收藏功能<br /> 与URL跳转有些相似,不过SSRF漏洞明显危害更大。SSRF是从服务端执行,而URL跳转是由客户端执行。这是他们本质不同的地方。<br /> SSRF还可以利用协议实现更多功能:<br /> url=file:///etc/passwd<br /> dict,gopher,ftp,smb,tftp,telnet协议等
进一步测试
在没有账号的情况下,可以测试的范围有限。如果这个网站可以注册的话,我们也许能在里面练习更多的姿势。
- CSRF
在功能操作请求头中是否有token,并且不对referer进行验证。 - 文件上传
这个遇到了再说吧,不好写。
逻辑漏洞
在常规测试下没有找到漏洞的情况下,可以尝试逻辑漏洞。
最常见的逻辑漏洞位于支付购买,密码重置等位置
目前整理大概以下几种,随时补充。
- 越权敏感信息泄露
- 支付漏洞,可能可以重放
- 越权修改信息
- 验证码可爆破
- 短信轰炸
- 密码找回逻辑漏洞
系统漏洞
当挖掘不到漏洞的时候,一般就放过了。死磕的话倒还可以尝试,还有以下方法。
- CMS识别,寻找CMS漏洞
http://whatweb.bugscaner.com/
云悉:http://www.yunsee.cn/ - nmap扫描主机端口,查看是否有其它服务可以进行尝试
PS:
文章里面很多东西都是理论性的,并没有经过实践,是否错漏还需要进一步的测试。