当前位置: 首页 > news >正文

【Web安全】sqlmap的使用笔记及示例

【Web安全】sqlmap的使用笔记

文章目录

  • 【Web安全】sqlmap的使用笔记
    • 1. 目标
    • 2. 脱库
      • 2.1. 脱库(补充)
    • 3. 其他
      • 3.1. 其他(补充)
    • 4. 绕过脚本tamper讲解

1. 目标

操作作用必要示例
-u指定URL,检测注入点sqlmap -u 'http://example.com/?id=1'
-m指定txt,里面有很多个URLsqlmap -m urls.txt
-r检测POST请求的注入点,使用BP等工具抓包,将http请求内容保存到txt文件中sqlmap -r request.txt
–cookie指定cookie的值,单/双引号包裹sqlmap -u "http://example.com?id=x" --cookie 'session_id=1234'
-D指定数据库sqlmap -u 'http://example.com/?id=1' -D mydatabase
-T指定表sqlmap -u 'http://example.com/?id=1' -D mydatabase -T mytable
-C指定字段sqlmap -u 'http://example.com/?id=1' -D mydatabase -T mytable -C mycolumn

2. 脱库

操作作用必要示例
-b获取数据库版本sqlmap -u <url> -b
–current-db当前数据库sqlmap -u <url> --current-db
–dbs获取数据库sqlmap -u <url> --dbs
–tables获取表sqlmap -u <url> --tables -D <database>
–columns获取字段sqlmap -u <url> --columns -D <database> -T <table>
–schema字段类型sqlmap -u <url> --schema -D <database>
–dump获取数据sqlmap -u <url> --dump -D <database> -T <table>
–start开始的行sqlmap -u <url> --start=1 -D <database> -T <table>
–stop结束的行sqlmap -u <url> --stop=10 -D <database> -T <table>
–search搜索库表字段sqlmap -u <url> --search -C <column>
–tamperWAF绕过sqlmap -u <url> --tamper=<tamper_script>

2.1. 脱库(补充)

  • –current-db获取的是当前的数据库名称,而–dbs获取的是所有的数据库名称
  • WAF 指的是“Web Application Firewall”,即网络应用防火墙,例如sqlmap -u ‘http://xx/?id=1’ --tamper ‘space2comment.py’,sqlmap有很多内置的绕过脚本(脚本按照用途命名),在/usr/share/sqlmap/tamper/目录下
  • –search:如果你正在寻找包含特定关键字的列,这个命令将列出所有包含该关键字的列的名称及其所属的表和数据库。

3. 其他

操作作用必要示例
–batch不再询问确认sqlmap -u 'http://example.com/?id=1' --batch
–method=GET指定请求方式sqlmap -u 'http://example.com/?id=1' --method=GET
–random-agent随机UAsqlmap -u 'http://example.com/?id=1' --random-agent
–user-agent自定义UAsqlmap -u 'http://example.com/?id=1' --user-agent 'MyUserAgent'
–referer自定义referersqlmap -u 'http://example.com/?id=1' --referer 'http://referer.com'
–proxy=“123”代理sqlmap -u 'http://example.com/?id=1' --proxy='http://123.123.123.123:8080'
–threads 10线程数1~10sqlmap -u 'http://example.com/?id=1' --threads 10
–level=1测试等级1~5sqlmap -u 'http://example.com/?id=1' --level=1
–risk=1风险等级0~3sqlmap -u 'http://example.com/?id=1' --risk=1

3.1. 其他(补充)

  • 测试等级:这个等级决定了 SQLMap 将尝试的测试数量和类型。较高的等级意味着 SQLMap 将执行更多类型的测试,这些测试可能更复杂,有时也更具侵入性。例如,在较低的等级上,SQLMap 可能只测试最常见的注入类型,而在较高等级上,它会尝试更多不常见的或复杂的注入技术。
  • 风险等级:风险等级影响测试的侵入性。较高的风险等级可能会运行更具侵入性的测试,这些测试可能会对数据库造成更大的负担或风险。例如,一些高风险测试可能包括执行实际的数据库操作(如更新或删除数据),而低风险测试则尽量避免这种潜在的破坏性操作。
操作作用必要示例
-a自动识别和测试所有参数sqlmap -u 'http://example.com/?id=1' -a
–current-user获取当前数据库用户sqlmap -u 'http://example.com/?id=1' --current-user
–is-dba是不是数据库管理员sqlmap -u 'http://example.com/?id=1' --is-dbs
–users枚举数据库服务器上的用户sqlmap -u 'http://example.com/?id=1' --users
–privileges枚举数据库用户的权限sqlmap -u 'http://example.com/?id=1' --privileges
–passwords尝试获取数据库用户的密码sqlmap -u 'http://example.com/?id=1' --passwords
–hostname获取数据库服务器的主机名sqlmap -u 'http://example.com/?id=1' --hostname
–statements捕获并显示SQL语句sqlmap -u 'http://example.com/?id=1' --statements

4. 绕过脚本tamper讲解

sqlmap在默认情况下除了使用CHAR()函数防止出现单引号,没有对注入的数据进行修改,我们还可以使用–tamper参数对数据进行修改来绕过WAF等设备,其中部分脚本主要用正则模块替换攻击载荷字符编码的方式尝试绕过WAF的检测规则:

sqlmap XXXXX --tamper "模块名"

sqlmap内置了53个脚本,其中常见的是:

  • apostrophemask.py:将引号替换为UTF-8字符,用于过滤单引号
  • base64encode.py:替换为base64编码
  • multiplespaces.py:围绕SQL关键字添加多个空格
  • space2plus:用+号替换空格
  • nonrecursivereplacement.py:作为双重查询语句,用双重查询代替预定义的SQL关键字,使适用于非常弱的自定义过滤器,例如将SELECT替换为空
  • space2randomblank.py:将空格替换为其他的有效字符
  • unionalltounion.py:将UNION ALL SELECT替换为UNION SELECT
  • securesphere.py:追加特制的字符串
  • space2hash.py:将空格替换为#号,并添加一个随机字符串和换行符
  • space2mssqlblank.py(mssql):将空格替换为其他空符号
  • space2mssqlhash.py:将空格替换为#号,并添加一个换行符
http://www.lryc.cn/news/239849.html

相关文章:

  • 机器学习第12天:聚类
  • 若依框架导出下载pdf/excel以及导入打印等
  • 汇编-PROC定义子过程(函数)
  • 服务器主机安全的重要性及防护策略
  • PDF转成图片
  • Qt无边框设计
  • 规则引擎Drools使用,0基础入门规则引擎Drools(二)高级语法
  • C语言二十三弹---求第N项斐波那契数列的值
  • Pickcode:教孩子们编码的新视觉语言
  • 乐划锁屏插画大赏热度持续,进一步促进价值内容的创造与传播
  • 【ArcGIS Pro微课1000例】0034:矢量数据几何校正案例(Spatial Adjustment)
  • 2023亚太杯数学建模B题:玻璃温室中的微气候法规,思路模型代码论文
  • Eclipse常用设置-乱码
  • MySQL面试,MySQL事务,MySQL锁,MySQL集群,主从,MySQL分区,分表,InnoDB
  • HarmonyOS应用开发者认证题目满分指南
  • openssl+ SM2 + linux 签名校验开发实例(C++)
  • 有关Vue、微信小程序、UniApp中的CSS中的宽度width单位、自适应
  • 黑马React18: ReactRouter
  • 算法刷题-动态规划-1
  • 分享一篇很就以前的文档-VMware Vsphere菜鸟篇
  • QT中的lambda表达式
  • linux文件I/O:文件锁的概念、函数以及代码实现
  • MySQL数据库系统教程
  • 这样写postman实现参数化,阿里p8都直呼牛逼
  • 【Qt-25】控件篇
  • 《算法通关村——反转字符串中的单词问题解析》
  • C++使用Tensorflow2.6训练好的模型进行预测
  • 5-1 Java 网络编程
  • 汇编-CALL和RET指令
  • STM32_5(中断)