一、环境配置
打开文件在sql下面的db,可以查看账号、密码和名称
有三种方式可以访问。
1.通过域名访问(http://www.sqllabs.com)
2.通过地址访问(127.0.0.1/qa)
3.通过cx.cm软件进入
如何通过软件进入
先设置软件上面的各种配置
安装没有的软件
开启软件
设置软件
创建一个新的用户
然后通过三种方法之一可以进入
可以通过点击下面,直接进入。
二、通过代码,写解题
2.1字符型注入
2.1.1首先先测试一下字符(?id=1)
2.1.2尝试单引号闭合看输出什么(?id=1',id=1)
2.1.3可以见得有报错必有注入点,去用1=1试一下
2.1.4猜字段,首先猜10,然后通过二分法猜5,再猜3,ok我们猜到3的时候就对了
2.1.5猜出字段为3了以后直接联合查询
2.2数字型注入
2.2.1查看源码
第二关通过查看源码我们很明显可以看到和第一关不同的点在于,第一关有单引号闭合,第二关没有,通过调试第一关代码看数据传给那个参数了,很明显传给id,看看第二关的id吧
2.2.2比较知不同
很明显我们查询的引号不见了,如果我们继续加引号会造成无法闭合当然无法查询,
2.2.3比较和实践
当我们不去加引号闭合时
而之后的查询就跟我们之前的一样操作即可
2.3
2.3.1通过?id=1'和?id=1判断
当我们在输入?id=1'的时候看到页面报错信息。可推断sql语句是单引号字符型且有括号,所以我们需要闭合单引号且也要考虑括号。
2.4
2.4.1查看注入点
跟第三关一样半闭合不闭合双引号去试试,很明显通过回显数据我们可以看到,是双引号字符型注入
2.5布尔盲注
2.5.1首先进行单引号闭合和不闭合测试
很明显第五关为单引号闭合。但是无论我们输入什么命令都是没有回显,很明显的一件事就是这一关对于请求对错出现不一样,可以说是压根不报。这个时候我们用联合注入就没有用,因为联合注入是需要页面有回显位。如果数据 不显示只有对错页面显示我们可以选择布尔盲注。布尔盲注主要用到length(),ascii() ,substr()这三个函数,首先通过length()函数确定长度再通过另外两个确定具体字符是什么
2.5.2使用了连接函数concat
先查字段,再查表,再通过字段,分段截取,up升级版本解法,(floor)通杀解法5.0-8.0
2.6
2.6.1测试注入点
通过测试可以见得此关是通过双引号进行闭合的
3.6.2尝试注入
可以见得此关跟第五关一样,只是闭合方式不同了
2.7
2.8布尔盲注
2.8.1测试注入点
联合查询报错注入都不回显了,你是错的就不显示,你是对的就you are in......
3.8.2开始注入
我们知道s的ASCII值为115,那我们就可以输入判断真假
?id=1' and ascii(substr(database(),1,1))>100--+
2.9时间盲注
2.9.1测试注入点
用刚才的方法发现没有布尔的显隐了
?id=1' and if(ascii(substr(database(),1,1))>100,sleep(3),0)--+
2.10
第十关和第九关一样,只是闭合变为双引了