跳转到内容
Go back

SQL 注入全面检查 Workflow 记录

更新于:

SQL 注入全面检查 Workflow 记录

Workflows

  1. 格式化接口文档为 openapi 格式
  2. 导入 bruno,新建 bruno Collection
  3. 在 bruno 配置
    • Auth 添加变量
    • Collection 中配置环境信息,正确的服务端地址,环境代号并激活
  4. Bruno Collection 预处理
  5. 为 env 配置文件中的参数添加,有效的示例值
  6. 使用 bruno 批量 run

Bruno Collection 预处理

如下步骤已经由 bruno-lint 小工具实现,效率和质量远比手动处理要高:

  1. 递归查找参数值为变量形式
  2. 初始化 get 请求链接,拼接处理后的参数到 URL query
  3. 递归提取参数到 env 配置文件

Bruno Batch Run

这个步骤也可以在经过Bruno Collection 预处理 之后直接在 bruno 中进行,实测可以实现动态替换参数变量为对应的值

基本参数示例:

似乎:

  1. -env-env-file 互斥,不能同时使用
  2. bru 直接指定子目录 run 似乎存在 bug,测试下来最稳当的方式就是子啊 collection 根目录直接运行 bru run
bru run --env fat

其他参数补充:

安装 bruno 和 bruno-cli

scoop install bruno

npm install -g @usebruno/cli

SQLmap 批量验证

这个批量验证的方式主要是利用 sqlmap 对 burp log 的兼容特性来实现,示例参数列表

sqlmap -l dp_log.txt \
	--batch \
	--level=5 \
	--risk=3 \
	--force-ssl \
	--dbms=postgresql \
	--param-exclude="pageSize|currentPage|pageNum" \
	--skip="user-agent,referer,cookie,x-requested-with,accept,dnt,content-type,accept-encoding,accept-language,connection" \
	--threads=10 \
	--time-sec=10 \
	-s "dp-log.sqlite" \
	-t "sqlmap-for-db-log.txt" \
	--save sqlmap.conf \
	--random-agent

通过 -H 参数添加 cookie

sqlmap -l dp_log.txt \
	--batch \
	--level=5 \
	--risk=3 \
	--force-ssl \
	--dbms=postgresql \
	--param-exclude="pageSize|currentPage|pageNum" \
	--skip="user-agent,referer,cookie,x-requested-with,accept,dnt,content-type,accept-encoding,accept-language,connection" \
	--threads=10 \
	--time-sec=10 \
	-s "dp-log.sqlite" \
	-t "sqlmap-for-db-log.txt" \
	--save sqlmap.conf
	-H 'Cookie: JSESSIONID=2EE6C2475878D6DF28723FE6485D92BA' 

使用 sqlmap.conf 配置文件继续执行

sqlmap -c sqlmap.conf \
	-s "dp-log.sqlite" \
	-t "sqlmap-for-db-log.txt" \
	-H 'Cookie: JSESSIONID=2EE6C2475878D6DF28723FE6485D92BA' 

Det-sql Todo

  1. myhash 去重应该是添加了时间戳,导致重复检查
  2. 右键菜单导出日志,格式与 burp 直接导出存在明显差异,sqlmap 在运行时识别的检查目标比实际日志偏少

附录

参考资料


分享文章至:

Previous Post
Dify API 测试
Next Post
Linux 环境快速配置