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 这个条件,image.png
  • 在小数部分大于15位左右的时候,就会自动返回true
  • payload id = 0.9999999999999999
    -image.png

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=(随便一个密码)

image.png

Excel

  • notepad++打卡收索flagimage.png

morse

  • 保存音乐下来,听左声道,能听到di di da da 的声音,
  • 用Audacity 打开,粗的为-,短的为. ,morse 解码得到flag

easy_stego

  • 记事本打开,收索flagimage.png

bwm

  • 两张图片的盲水印加密,但是python环境还是有点问题,正在调试中

真正的签到题

  • 用ida打开,直接就可以看到flag