easy_web
- 查看源码
<!--
parse_str(a=a=_GET['flag']); if(boom=="givemeflag"){
echoboom=="givemeflag"){ echoflag; }
-->
-
parse_str() 函数引起的变脸覆盖漏洞
- 函数用于把查询的字符串解析到变量中,如果没有arry参数,则由该函数设置的变量覆盖已存在的同名变量
- ps: 不建议在没有array参数的情况下使用此函数,在php7.2中将废弃不设置参数的行为,may be 在php 7,2后这个函数就没有这个漏洞了
-
payload: flag=boom=givemeflag
- 得到flag
web_1
- 得到php源码
- hint, 四舍五入, 当读取的id = 0.99999999999999999999长的时候会自动的四舍五入为1,这样就达到了 在 strtr()函数返回 fasle,但是后面的 id == 1 这个条件,
- 在小数部分大于15位左右的时候,就会自动返回true
- payload id = 0.9999999999999999
-
Login
- 根据hint 在http 头里面得到了一段base64
- 解码得到一段 sql="SELECTusername,passwordFROMadminWHEREusername=′".sql="SELECTusername,passwordFROMadminWHEREusername=′".username."'"; if (!empty(row) &&row) &&row['password']===md5($password)){ }
- 源码 查询一个用户,这个用户输入的密码的md5要和数据库里面的已存的用户的md5要相同
- 可以通过构造一个不存在的用户,用union select 构造出自己指定密码的md5值,从而成功登陆
- payload : username=(随便一个不存在的用户) union select 用户, ma5(密码)%23password=(随便一个密码)
Excel
- notepad++打卡收索flag
morse
- 保存音乐下来,听左声道,能听到di di da da 的声音,
- 用Audacity 打开,粗的为-,短的为. ,morse 解码得到flag
easy_stego
- 记事本打开,收索flag
bwm
- 两张图片的盲水印加密,但是python环境还是有点问题,正在调试中
真正的签到题
- 用ida打开,直接就可以看到flag