sqlmap的高级使用-tamper脚本使用、os-shell原理等

sqlmap的脚本使用和编写修改
        1)基本使用
            想跑哪个参数,在哪个参数后面+“*”号
            --threads 线程数
            --random-agent  随机的user-agent头
            --level   注入程序
        2)脚本使用
            -tamper=
            例子:python sqlmap.py -u "http://192.168.1.10/sql/Less-4/?id=1" -tamper=base64encode.py --proxy="http://127.0.0.1:8080"
            (1)apostrophemask.py   用UTF-8全角字符替换单引号字符
            (2)apostrophenullencode.py   用非法双字节unicode字符替换单引号字符
            (3)appendnullbyte.py        在payload末尾添加空字符编码
            (4)base64encode.py   对给定的payload全部字符使用Base64编码
            (5)between.py        分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=
            (6)bluecoat.py        在SQL语句之后用有效的随机空白符替换空格符,随后用“LIKE”替换等于号
            (7)chardoubleencode.py        对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)
            (8)charencode.py    对给定的payload全部字符使用URL编码(不处理已经编码的字符)
            (9)charunicodeencode.py        对给定的payload的非编码字符使用Unicode URL编码(不处理已经编码的字符)
            (10)concat2concatws.py        用“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例
            (11)equaltolike.py        用“LIKE”运算符替换全部等于号“=”
            (12)greatest.py            用“GREATEST”函数替换大于号“>”
            (13)halfversionedmorekeywords.py        在每个关键字之前添加MySQL注释
            (14)ifnull2ifisnull.py        用“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例
            (15)lowercase.py        用小写值替换每个关键字字符
            (16)modsecurityversioned.py            用注释包围完整的查询
            (17)modsecurityzeroversioned.py        用当中带有数字零的注释包围完整的查询
            (18)multiplespaces.py        在SQL关键字周围添加多个空格
            (19)nonrecursivereplacement.py        用representations替换预定义SQL关键字,适用于过滤器
            (20)overlongutf8.py            转换给定的payload当中的所有字符
            (21)percentage.py        在每个字符之前添加一个百分号
            (22)randomcase.py            随机转换每个关键字字符的大小写
            (23)randomcomments.py        向SQL关键字中插入随机注释
            (24)securesphere.py            添加经过特殊构造的字符串
            (25)sp_password.py            向payload末尾添加“sp_password” for automatic obfuscation from DBMS logs
            (26)space2comment.py        用“/**/”替换空格符
            (27)space2dash.py            用破折号注释符“--”其次是一个随机字符串和一个换行符替换空格符
            (28)space2hash.py            用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
            (29)space2morehash.py        用磅注释符“#”其次是一个随机字符串和一个换行符替换空格符
            (30)space2mssqlblank.py        用一组有效的备选字符集当中的随机空白符替换空格符
            (31)space2mssqlhash.py        用磅注释符“#”其次是一个换行符替换空格符
            (32)space2mysqlblank.py        用一组有效的备选字符集当中的随机空白符替换空格符
            (33)space2mysqldash.py        用破折号注释符“--”其次是一个换行符替换空格符
            (34)space2plus.py            用加号“+”替换空格符
            (35)space2randomblank.py    用一组有效的备选字符集当中的随机空白符替换空格符
            (36)unionalltounion.py        用“UNION SELECT”替换“UNION ALL SELECT”
            (37)unmagicquotes.py        用一个多字节组合%bf%27和末尾通用注释一起替换空格符 宽字节注入
            (38)varnish.py                添加一个HTTP头“X-originating-IP”来绕过WAF
            (39)versionedkeywords.py    用MySQL注释包围每个非函数关键字
            (40)versionedmorekeywords.py    用MySQL注释包围每个关键字
            (41)xforwardedfor.py        添加一个伪造的HTTP头“X-Forwarded-For”来绕过WAF
        3)os-shell
            (1)前提条件:
                <1>拥有网站的写入权限
                <2>Secure_file_priv参数为空
            (2)原理:
                必须提前知道物理路径,还有脚本类型语言,先通过写入一个上传框文件(tmpuoeyk.php)--使用的是INTO OUTFILE函数来
                上传的上传框,然后通过这个上传框来进行上传后门文件(tmpbjkvk.php),然后利用此后门文件来执行命令
        4)高级用法
            (1)利用Google语法进行批量扫描:sqlmap.py -g “inurl:php?id=1 site:.com.cn”
            (2)--file-write  写入文件
                sqlmap -u "http:/192.168.3.2/sqli-labs-master/sqli-labs-master/Less-1/?id=1" --file-write "/root/1.txt"
            (3)--file-read   读取文件
                sqlmap -u "http:/192.168.3.2/sqli-labs-master/sqli-labs-master/Less-1/?id=1" --file-read "C:/post.txt"
            (4)--sql-shell
                用于执行sql命令,主要用于探测文件路径
                python sqlmap.py -u "http://192.168.68.132/sqli-labs/Less-1/?id=1" --sql-shell
                select @@datadir; 查看文件路径
                select @@version; 查看版本信息
            (5)--reg-read
                读取注册表

SQLMap是一款自动化的SQL注入工具,可以帮助测试人员快速发现应用中的SQL注入漏洞。以下是SQLMap的一些基本使用方法: 1. 基本使用命令 ``` python sqlmap.py -u <URL> --dbs # 列出数据库 python sqlmap.py -u <URL> -D <database> --tables # 列出数据库中的表 python sqlmap.py -u <URL> -D <database> -T <table> --columns # 列出表中的列 python sqlmap.py -u <URL> -D <database> -T <table> -C <column> --dump # 获取列中的数据 ``` 其中,`<URL>`是待测试的网站地址,`<database>`是数据库名,`<table>`是表名,`<column>`是列名。 2. 常用选项 - `-u`:指定待测试的网站地址。 - `--dbs`:列出数据库。 - `-D`:指定数据库名。 - `--tables`:列出数据库中的表。 - `-T`:指定表名。 - `--columns`:列出表中的列。 - `-C`:指定列名。 - `--dump`:获取列中的数据。 - `--level`:指定测试等级,从1到5,默认为1。 - `--risk`:指定测试风险,从1到3,默认为1。 - `--threads`:指定多线程数,默认为1。 - `--delay`:指定延迟时间,默认为0秒。 - `--timeout`:指定超时时间,默认为30秒。 - `--batch`:关闭交互式模式,直接使用默认选项。 - `--crawl`:开启爬虫模式,爬取整个网站进行测试。 - `--cookie`:指定Cookie。 - `--user-agent`:指定User-Agent。 - `--headers`:指定HTTP头。 - `--tor`:通过Tor网络进行匿名测试。 - `--proxy`:指定代理服务器。 3. 高级使用方法 - 手动指定注入点:使用`-p`选项手动指定注入点。 - 使用HTTP参数:使用`-p`选项手动指定参数,例如`-p id`。 - 使用POST请求:使用`--data`选项指定POST数据。 - 编码绕过:使用`--tamper`选项指定编码绕过脚本,例如`--tamper=space2comment`。 - 文件上传:使用`--file-read`选项读取文件,使用`--file-write`选项写入文件。 - 命令执行:使用`--os-shell`选项执行系统命令。 - 数据库管理:使用`--sql-shell`选项进入SQL Shell。 以上是SQLMap的一些基本使用方法和常用选项,更多高级使用方法可以查看SQLMap的官方文档。在使用SQLMap进行测试时,请务必遵守法律法规和道德规范,避免对他人造成损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值