TangScan插件编写过程中易犯的几种错误

  • A+
所属分类:WooYun-Zone

由于Python比较容易上手,白帽子提交的插件代码上的错误也并不多;错误多体现在误报或是漏报上,下面就罗列下几种出现次数较多的错误,共同学习、共同进步!

一、误报类

TangScan插件编写过程中易犯的几种错误

这里有两处错误:

1、使用33作为关键字去判断是否存在注入,存在较大的误报风险!

解决方案:使用mysql的md5()函数计算出一个md5值作为判断的关键字(…999.9+union+select+11,22,md5(9527)%23,然后判断返回数据中有无9527的md5值52569c045dc348f12dfc4c85000ad832即可有效地解决误报问题)

2、self.result.description给出的验证结果不够详细,仅仅给出有注入这个信息,无法知道是不是误报!

解决方案:将某个注入结果包含到self.result.description中,如mysql的version、user等信息(…999.9+union+select+111,222,concat(0x7e7e7e,user(),0x7e7e7e)%23,使用re匹配出user()信息,包含到self.result.description中)

TangScan插件编写过程中易犯的几种错误

TangScan插件编写过程中易犯的几种错误

这里也有两处错误:

    1、使用固定的文件名作为上传的文件名(要考虑到再次上传是否可以覆盖,所以最好使用随机文件名)

    2、验证文件是否上传成功要考虑到是否解析(asp:<%response.write(1+95201313)%>、php:<?php print(1+95201313);?>、JSP:<%out.print(1+95201313);%>,访问上传后的文件地址,返回结果中判断有无95201314关键字即可)

TangScan插件编写过程中易犯的几种错误

二、漏报类

TangScan插件编写过程中易犯的几种错误

这里有两处错误:

    1、通过判断当前用户的第一个字母是不是r(ascii码为114)来判断是否存在注入,肯定会导致漏报!(不是所有的网站数据库当前用户都是root)

    2、延时的时间设定为2,大大增加了误报的风险!要考虑到一些网站在访问时网络不稳定等因素,尽量把延时时间设置的长一些。(线上测试过一些注入,总体上设置延时时间在5-8秒范围内结果还是让人满意的)

TangScan插件编写过程中易犯的几种错误

    这个某任意文件下载漏洞的插件表面看上去并没有什么问题,而实际扫描中遇到过几次这样的情况,xml文件中有特殊字符,导致代码报错!其实漏洞是存在的,因为特殊字符导致了此漏洞未被检测到。所以最好的做法是使用re匹配出xml中的一段内容在self.result.description中展示。

    经常写插件的同学也可以把你们经常犯的错误或是遇到的坑发出来,共同学习,共同进步!

    欢迎各位白帽子来TangScan提交插件!不仅可以学习Python、交到基友,还可以赚取汤圆兑换RMB哦!

  1. 1#

    园长 (喵~) | 2015-09-05 15:33

    路过~

  2. 2#

    ver007 | 2015-09-05 15:34

    。。。。

  3. 3#

    金枪银矛小霸王 (勿忘初心:)) | 2015-09-05 15:36

    路过~

  4. 4#

    Fate (NIXI Team 欢迎志同道合的朋友交流.) | 2015-09-05 16:26

    插件水平决定了扫描器的水平,国内很多提交插件的扫描器漏洞插件编写水平残不忍睹,如果tangscan可以解决这个问题就赞了…

  5. 5#

    boooooom | 2015-09-05 16:46

    已感谢!

  6. 6#

    phith0n | 2015-09-05 16:55

    看着就感觉你们审核的很累,辛苦辛苦。。。

  7. 7#

    RedFree (‮11:11 11-11-1112 |※(器杀制自) | 2015-09-05 17:06

    @phith0n 是啊,虽然辛苦,但感觉很充实。phith0n大神也来提交些插件嘛~

  8. 8#

    _Evil (科普是一种公益行为) | 2015-09-06 09:04

  9. 9#

    xsser | 2015-09-06 10:04

    @RedFree 赞 可惜木有wb了 不然打赏

  10. 10#

    伟大娃娃 (٩[·̮̃·̃]۶٩[·̮̃·̃]۶) | 2015-09-06 10:20

    @xsser 说的好像不能加工资似的!

  11. 11#

    0c0c0f (DebugPwn) | 2015-09-06 11:30

    好几个都是我踩的坑啊

  12. 12#

    我是壮丁 | 2015-09-06 13:39

    还好我只写简单粗暴的。。。。

  13. 13#

    asdf (import pdb;pdb.set_trace(); name=”signature” type=”text” maxlength=”25″) | 2015-09-06 15:48

    坑都是踩出来,这里还没考虑网络因素吧? 例如超时重试

  14. 14#

    pandas | 2015-09-06 16:56

    @xsser 没有wb,你怎么进的社区,凑不要脸

  15. 15#

    vc1 | 2015-09-06 22:47

    插件专注payload ,验证规则
    回显验证应该由框架提供接口

  16. 16#

    啊L川 | 2015-09-15 11:11

    Mark一下

  17. 17#

    BeenQuiver | 2015-09-17 21:45

    能不能出个tips,讲解一些插件优化方案

  18. 18#

    一个小渣渣 | 2015-12-20 08:49

    mark