咸鱼web手被大佬虐哭,做又做不来,只能跟着队友躺躺这样子,QWQ
题目质量很高,膜一波FlappyPig
的大佬们~
0x00 web签到
第一层:
特殊子串举例如下:
240610708、QNKCDZO、aabg7XSs、aabC9RqS
直接过
第二层:
传入param[]
数组型,error = error
,过
第三层,传入MD5
相等文件,附脚本如下:
0x01 three hit
注册时候我们发现age
栏输入0x
及十六进制字符串会显示,之后猜测这是一个二次注入利用,第一次将我们的poc
写入age
,第二次利用age
查询是否有相同的age
的name
,猜测语句为 select name from table where age = age
,所有思考后面这个age
,即我们可控的这个参数如何利用。
很遗憾union
这种查询我们一直无法利用,利用exist
函数我们成功发现存在flag表和flag字段,所以我们写了如下两个脚本,最终通过逐个查询get
到flag
第一个为注册脚本:
第二个为登录查询脚本:
0x02 Python is the best language 1
Ps:这题槽点真多,,,
三种方法getflag:
1. 晚上admin/admin登录直接拿flag
2. 留言板有人放,QWQ
3. 正常解法:
数据库注入:
根据题目给的源码,很容易发现这里有注入点
网络太卡无力吐槽,只能手工逐个注入,一些payload
‘+ascii((substr((select(schema_name)from(information_schema.schemata)limit 2,1),1,1)))+’
‘+ascii((substr((select(table_name)from(information_schema.tables)where(table_schema=’flask’)limit 0,1),1,1)))+’
ps:测试注入点时玄学select的括号,难受到不行……
逐个这样下去,可知
Flask数据库
表 flaaaaag,followers
第一个表可以拿到flag
第二个表看了第一个字段,followers_id
其他部分wp参考以下大佬们的博客地址:
强网杯2018 Web writeup
Pwn a CTF Platform with Java JRMP Gadget
强网杯-writeup
Python is the best language-Writeup