介绍
jSQL injection是一款由JAVA开法的SQL自动化注入工具,它提供了数据库查询、后台爆破、文件读取、Web shell、SQL Shell、文件上传、暴力枚举、编码、批量注入测试等强大的功能,是一款非常不错的工具,也是渗透测试人员的强大助手。它支持GET\POST注入,同时也可以进行HTTP头注入(这个需要用户自动构建),它是免费的,开源的,跨平台的Windows,Linux和Mac,它适用于版本11到17的Java
工具的安装与应用范围,参见github地址:https://github.com/ron190/jsql-injection
使用
工具应该是自动检测系统语言,第一次打开直接是中文,很友好。
试一下,发现这是一款全自动sql注入工具,直接把数据都给扒下来了。
检测规则
工具的特征还是蛮明显的
得到snort规则:
alert tcp any any -> any any (msg:"jsql注入攻击"; flow:to_server; content:"Connection|3a 20|Upgrade, HTTP2-Settings"; http_header; nocase; content:"Upgrade|3a 20|h2c"; http_header; nocase; content:"User-Agent|3a 20|Java-http-client"; nocase; http_header; content:"HTTP2-Settings|3a 20|"; nocase; http_header; metadata:service http; metadata:service http; sid:1; rev:1;)
补充:我把ua纳入到了检测规则里,进一步提高了规则的准确度。虽然jsql支持ua自定义,进而可以绕过这个检测规则,但是我个人觉得,就算不能检测此工具也无妨,毕竟,谁家的规则库都能检测sql注入攻击,从这个意义上讲,规则不检测ua或者攻击者改变ua头的实际意义并不大。