PoC 编写指南(基于Bugscan框架SQL注入PoC编写)

  • A+
所属分类:安全工具

版权声明:本教程为笔者原创,转载需征求笔者同意。


港真,这其实是一篇教你怎么赚钱的PoC指南,所以呢,如果你通过这篇文章赚钱了,请不要吝啬你的转发跟点赞。呀比!


讲完了无框架编写PoC,现在就来说说怎么将我们的代码 2_2_2.py 改写成基于 Bugscan 框架的 PoC。


Bugscan 框架要求所有的逻辑代码都必须是基于 Python 2.7 的标准库的,所以像 requests 这种第三方库就不能在这里使用了。


Bugscan 提供了一个自己 sdk 封装好的 HTTP 请求发送工具 miniCurl,经历过一次改版后又提供了 miniCurl2, curl2 相比其它类库最大的特点是支持 raw 类型数据,也就是说,你从 burpsuite 里面截到的包直接复制出来就能直接发送,这大大方便了安全人员编写 PoC ,然而我并不喜欢这种方式,后面会讲讲这个东西怎么用。


官方出了更好用的 curl2 所以 curl 我就不在这里讲了。关于 miniCurl2 的用法,详细看这里(http://q.bugscan.net/t/749)

代码 2_2_4.py:


PoC 编写指南(基于Bugscan框架SQL注入PoC编写)

我们下载 Bugscan 官方 sdk 之后,将其解压,sdk 目录下有一个 dummy 目录,我们将 dummy 目录拷贝到和 2_2_4.py 在相同目录下:


PoC 编写指南(基于Bugscan框架SQL注入PoC编写)

代码 2_2_4.py 中 if __name__ == '__main__': 部分已经指定了我们待测试的目标地址。然后我们执行 2_2_4.py,看到如下结果:


PoC 编写指南(基于Bugscan框架SQL注入PoC编写)


看到这个就是执行成功了。本地是以 log 形式输出的,这玩意在网页上就会以扫描报告形式输出的。


好吧我们直接看代码结构了:

PoC 编写指南(基于Bugscan框架SQL注入PoC编写)


整体结构就像上面说的那样,最上面,是引入自己要用到的标准库,assign 就是任务分配函数,是来判断本次扫描任务是否可以调用这个 PoC 的, audit 就是整个验证逻辑的入口了,最下面的if __name__ == '__main__': 这段代码是为了让你在本地测试用的。


好了,看下具体的部分吧。


PoC 编写指南(基于Bugscan框架SQL注入PoC编写)


这就是 assign 部分的代码了,Bugscan 在扫描任务开始的时候,会先去识别组件是什么样的 CMS ,然后再调用相对应的 PoC 去检测是否有对应的漏洞,你想啊,你用一个 CmsEasy 特有的漏洞的 PoC 去验证 WordPress 搭的一个站, 你这不是搞笑嘛?大部分情况下都不会有啊。


service 就是这个指纹识别的结果,类型是个字符串。具体支持什么,你去看官方文档就好了。这里我们直接写 cmseasy ,看代码逻辑啊,如果我们的 service 识别出来是 cmseasy , 那么就返回一个列表 (True, arg) 这里的 arg 就是 url 了。


PoC 编写指南(基于Bugscan框架SQL注入PoC编写)


根据 main 里面的 audit(assign('cmseasy', 'http://localhost/cmseasy/')[1]) 我们知道, audit 的 arg 参数就是初始的 url 。

呐,我已经不想解释了,你和代码 2_2_2.py 对比下吧。区别有两点,第一个就是发送数据使用了 curl.curl2, 这个的用法看官方说明 然后就是输出不再是 print 而是调用了 security_hole 来输出我们想要输出的字符串。

security_hole 是高危,在网页上显示红色

security_warning 是中危,黄色

security_info 低危,蓝色

security_note 信息收集,绿色

好了,基于 Bugscan 框架的 PoC 编写也讲完了。PoC 编写指南(基于Bugscan框架SQL注入PoC编写)


PoC 编写指南(基于Bugscan框架SQL注入PoC编写)

inn0team只是一个正在成长的小的安全团队
微信号:inn0team
PoC 编写指南(基于Bugscan框架SQL注入PoC编写)
长按便可关注我们

点击“阅读原文”就可以跟Medici.Yan在评论区交流哦

本文始发于微信公众号(inn0team):PoC 编写指南(基于Bugscan框架SQL注入PoC编写)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: