# Sqlmap工具类 import shlex from tools.ToolBase import ToolBase class SqlmapTool(ToolBase): def validate_instruction(self, instruction): timeout = 0 # 检查sqlmap高风险参数 high_risk_params = [ "--os-shell", "--os-cmd", "--os-pwn", "--os-sql-shell", "--file-read", "--file-write", "--reg-add", "--reg-del", "--eval" ] # 将命令转换为小写,确保判断不区分大小写 cmd_lower = instruction.lower() for param in high_risk_params: if param in cmd_lower: return "" #检查--batch parts = shlex.split(cmd_lower) if "--batch" not in parts: parts.append("--batch") return " ".join(shlex.quote(part) for part in parts),timeout def analyze_result(self, result,instruction,stderr,stdout): # 检查结果中是否包含"vulnerable",表示SQL注入漏洞 return "发现SQL注入漏洞" if "vulnerable" in result else "未发现SQL注入漏洞" if __name__ == "__main__": ST = SqlmapTool() strcmd = "sqlmap -u \"http://haitutech.cn/news?id=1\" --os-shell --reg-add --reg-key=\"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\" --reg-value=ProxyEnable --reg-data=0 --reg-type=REG_DWORD" res,time_out = ST.validate_instruction(strcmd) print("11") print(res)