当前位置:WooYun(白帽子技术社区) >> tangscan >> TangScan插件编写过程中易犯的几种错误

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

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

由于Python比较容易上手,白帽子提交的插件代码上的错误也并不多;错误多体现在误报或是漏报上,下面就罗列下几种出现次数较多的错误,共同学习、共同进步!
一、误报类
1.jpg
这里有两处错误:
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中)
2.jpg

3.jpg
这里也有两处错误:
    1、使用固定的文件名作为上传的文件名(要考虑到再次上传是否可以覆盖,所以最好使用随机文件名)
    2、验证文件是否上传成功要考虑到是否解析(asp:<%response.write(1+95201313)%>、php:<?php print(1+95201313);?>、JSP:<%out.print(1+95201313);%>,访问上传后的文件地址,返回结果中判断有无95201314关键字即可)
4.jpg

二、漏报类
5.jpg
这里有两处错误:
    1、通过判断当前用户的第一个字母是不是r(ascii码为114)来判断是否存在注入,肯定会导致漏报!(不是所有的网站数据库当前用户都是root)
    2、延时的时间设定为2,大大增加了误报的风险!要考虑到一些网站在访问时网络不稳定等因素,尽量把延时时间设置的长一些。(线上测试过一些注入,总体上设置延时时间在5-8秒范围内结果还是让人满意的)

6.jpg
    这个某任意文件下载漏洞的插件表面看上去并没有什么问题,而实际扫描中遇到过几次这样的情况,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 | 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,讲解一些插件优化方案

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录