Skip to main content

HTTP

常规正则匹配规范(Regex)

文件类(File)

response.body_string.contains(“for 16-bit app support”)

命令类(原则上,在不能使用expr等操作时才可使用以下命令进行证明)

  • “(u|g)id=\d+“.matches(response.body_string) && response.body_string.contains(“root”)
  • 注意,该匹配方式不能单独使用,请结合其他信息一起使用(例如上述的root),例如添加headers中的特殊信息,或者前一个规则比较强等
使用该命令一般是在IOT环境下,确认ls的目录中某些文件不会发生变动的情况下,可以匹配返回的文件名称
  • echo {{randstr}} | rev
  • response.body_string.contains(rev(randstr))

常规漏洞检测模版(Vulns)

本着在保证准确性的前提下尽可能少发包的原则,切忌在第一个规则中的expression只使用一个response.status == 200这样的规则,这样基本等于会多发一个请求,理论上多少都应该有一些特征。

未授权类(Unauth)

文件读取类(File read)

系统文件(System file)

网站配置文件(Website Configuration)

RCE类

代码执行 (Code Execution)

在随机数过小的情况下,可能还是会出现误报,所以,请在适当的时候,活用bstartsWith方法或者尝试匹配网页中的其他特征
例如,计算的结果直接返回,并无其他附加,那么这个时候就可以使用response.body.bstartsWith(bytes(string(s1 - s2)))

命令执行 (Command Execution)

无回显RCE

SQL注入类

普通注入(Ordinary injection)

报错注入(Error injection)

布尔盲注(Bool)

时间盲注(Time)

SSRF/URL跳转类

目前暂时推荐使用example.com/example.org,后续会支持配置文件中动态获取 以下为具体示例,在不影响验证的情况下,推荐使用r0规则进行验证(URL跳转) ps:在使用r0规则时,有两点需要注意:
  1. 当存在多次跳转的情况时,请不要使用该规则
  2. 当location中包含原本请求的url时,请谨慎使用该规则,可能导致验证失败

SSRF

弱口令类(Weak password)

难以无害化漏洞检测模版(Difficult to harmless)

文件删除(Delete)

此类漏洞建议使用版本匹配的方式,或者匹配其他特征的方式侧面验证漏洞的存在,不要直接执行删除请求,以防对测试目标造成损害。

文件修改(Modify)

此类漏洞建议使用版本匹配的方式,或者匹配其他特征的方式侧面验证漏洞的存在,不要直接执行删除请求,以防对测试目标造成损害。

文件上传(Upload)

  • multipart/form-data; boundary=---------------------------16314487820932200903769468567中的boundary应随机化
  • 在上传的文件不能删除的情况下,可以选择继续上传一个同名空文件(请确保上传后的文件名称不被重命名),将原来的文件内容进行覆盖。
  • 但常规情况下,在上传php,jsp文件时,可以使用一些函数来将上传的文件删除,示例如下:

账号/密码修改(Account/Password Change)

此类漏洞建议使用版本匹配的方式,或者匹配其他特征的方式侧面验证漏洞的存在,不要直接执行删除请求,以防对测试目标造成损害。

特殊漏洞检测(Special vulnerability detection)

文件读取后,返回内容被编码(Content encoded)

Mssql unicode编码字符串

TCP

常规服务漏洞(service vulnerability)

memcache未授权访问漏洞

需要建立多个TCP连接进行验证的漏洞

可能类似这样的漏洞:CVE-2016-8704 参考连接:https://talosintelligence.com/vulnerability_reports/TALOS-2016-0219/