针对Xsser使用时已知攻击点却无法利用攻击点问题的解决措施

XSSer简介

XSSer简单来说就是一个自动化XSS漏洞检测以及利用的工具。他的常规使用方法以及小技巧会在后续的文章中提及,在这里,与大家交流一下我在工具使用过程中遇到的问题和解决方法。
对于这个问题,我也不知道是我不会使用搜索引擎还是姿势不对,我并没有在网上找到关于这个问题的解决方法找出问题他的解决过程也是很简单,但找出是哪的问题却要花一些心思,在这里记录一下,也算是给像我一样遇到困惑的人一点帮助。

操作环境

  • Kali (2019-12-9)
  • 内置python2和python3的环境
  • 起初是在dvwa靶场中对xsser进行测试,但后来因为还要输入cookie等参数会减慢调试速度,后半部分写的时候是用一个xss的在线靶场做的测试。xss在线靶场:http://test.ctf8.com/level1.php?name=test

遇到的问题

在使用xsser时,使用命令:
xsser -u "http://192.168.8.100/dvwa/vulnerabilities/" -g "xss_r/?name=" --cookie="security=low; PHPSESSID=uj3aruo7m4h2ea5k7frmbgil1u" -v -s --reverse-check
总是会报错,无法正常的使用,他的报错是这样的:
[Error] XSSer cannot find a correct place to start an attack. Aborting!...
意思是找不到攻击点,我在仔细阅读他的参数命令之后,并没有找到原因,因为我这是在DVWA中做的演示,并且安全级别是low,他是实实在在存在攻击点的。 那么,为什么总是不能正常的运行并且进行攻击呢?
在这里我不得不在吐槽一遍,我在网上查阅了不少的资料,但是,令人费解,人家的就不会报错,官网的也是可以正常运行,一样的指令在我这儿就有错误。
是不是我的kali存在问题?把目光从运行的参数拿开并且开始检查我kali中的xsser

排错修正阶段

找一下自己kali里的xsser文件

f51eae089b1b6c4ab39984508977aef1.png

看文件目录的话确实是有两个xsser
看看这俩的区别是什么:

aa94a4a3f15dc065ff76152aeb141822.png

可以看出,/usr/bin/xsser这个脚本使用的是/usr/share/xsser这个文件夹下的xsser

那/usr/share/xsser文件夹下的xsser与/usr/share/golismero/tools/xsser下的xsser有什么区别呢?从图中能看出明显的不同。

1c291941dafa367f0345bf6d27008b33.png

直接使用/usr/share/golismero/tools/xsser下的xsser,看看是否能成功。
使用命令为:
root@D-R0s1:~# cd /usr/share/golismero/tools/xsser/

rootroot@D-R0s1:/usr/share/golismero/tools/xsser# python xsser.py -u "http://192.168.8.100/dvwa/vulnerabilities/" -g "xss_r/?name=" --cookie="security:low;PHPSESSID:uj3aruo7m4h2ea5k7frmbgil1u" -v -s --reverse-check
此时的报错为:

910a046386b6dcca31203be4b801211c.png

缺少模块,装一个

f1a61eabf732caa3c6a00e2b72d9fbbf.png

安装成功
这个时候,再试一下
这里由于虚拟机中没有装dvwa需要和物理机来回切换,就找到了一个在线的xss练习平台进行测试
python xsser.py -u "http://xss.fbisb.com/yx/" -g "level1.php?name=test" --cookie="ocKey:85ab6490b8ccb28e14b094c4a0d87892" -v -s --reverse-check
运行结果:

14c27917df8355f3b92c7ce58ec49bda.png

可以看到已经成功的运行了,证明现在的xsser是没有问题的了。

替换掉默认Xsser

现在既然这个可以使用了,但他不是默认运行的,把它替换成默认的。
在一开始查看/usr/bin/xsser中内容的时候,知道这个脚本使用的是/usr/share/xsser这个文件夹下的xsser,现在我们只需要把这个
shell脚本修改一下,让我们输入xsser时,运行的
是/usr/share/golismero/tools/xsser下的xsser。

修改shell脚本

1.在/usr/bin 路径下建立一个shell脚本可以十分方便的定位到想要运行脚本的目录下,可以简化命令语句:
比如,在/usr/bin目录里建立一个名为xsser的shell脚本,如图:

1c5e8416a89db70cbd585d2016c1e6aa.jpeg

脚本文件名字是什么调用的时候就用什么,这里是xsser所以调用的时候直接使用xsser即可调用这个shell脚本
这个shell脚本里的东西,就是我们在输入xsser后,他自动执行的命令,脚本里内容为:

a5ef528201e96c1e8e87e937934ea021.jpeg

解释一下脚本的内容:

第一行:指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行
第二行:就是进入写出的那个目录
第三行:exec是bash的内置命令,作用是在不启用新的shell进程的条件下执行后面的内容。$@运行这个程式的所有参数。
这样一来,当输入xsser,这个shell脚本会自动运行其中的内容,进入固定目录,然后使用python2打开指定脚本。
一开始的时候,shell脚本里面是用python3打开的,但是我在测试的过程中,会报一些错误,并且这些错误都指向python2与python3之间区别的关系。所以在这里把使用python2打开脚本改为使用python3打开脚本,问题得到解决。
演示一下:

5001fdc2614c2105986189f2b3d58935.jpeg

成功。

到此,xsser已经可以正常使用,这个坑点不难,但是网上相关资料很少,既然我遇到了并解决了这个问题,就想把它分享出来,如果有掉坑的伙伴希望这篇文章能带你出坑。

发布了65 篇原创文章 · 获赞 58 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/CliffordR/article/details/104187666