PocScan 无法加载bugscan插件的解决办法

最近想写一个插件式扫描器,顺便研究了一下PocScan

https://github.com/erevus-cn/pocscan/

这个扫描器刚开源的时候很火,记得之前众测的时候还有公司将它部署到生产环境上,开了Debug信息。

在项目的Issues多次提到不兼容问题,但是一直没有修复,所以就看一下问题出在哪里。

加载bugscan插件后扫了一下自己的VPS,查看日志之后发现payload是发过来了,说明是结果存储反馈的过程除了问题。

文件 /pocscan/blob/master/pocscan/plugins/bugscan/dummy/__init__.py

def _problem(*args, **kwargs):
    # 从栈里取poc名字
    import inspect
    poc_name =  inspect.stack()[1][1]
    log = kwargs['log']

  • 这里传入的参数用*args就可以了
  • 作者的本意是获取log中的url,事实上在旧版的插件中并不返回log,log 是新插件中hackhttp函数返回的

简单粗暴直接将38行修改成

def _problem(*args):
    # 从栈里取poc名字
    import inspect
    poc_name = inspect.stack()[1][1]
    result = ['note', 'info', 'warning', 'hole'][args[0]]
    save_result(args[1], poc_name, result + ': '+poc_name)

扫描一下看结果:

总结:这个扫描器从学习的角度来讲具有借鉴意义,但并不适合部署使用。

后续我会写一下我的插件式扫描器的开发过程,在此立个flag。