[WUSTCTF2020]朴实无华1--writeup

 第一步目录扫描

发现fl4g.php点开看看中文乱码了这时可以利用火狐修复一下按 alt 

 

 接下来就是绕过三级level

level 1:

intval()函数作用是在处理数据时会在接触到字符串时停止,即11y58=11,x58=0,1e4=1

而1e4其实等于10000 这是一种科学计数法,具体来说,1e4 中的 1 表示基数(也称为尾数或有效数字),而 4 表示指数。这可以解释为 1 乘以 10 的 4 次方,即 1 * 10^4,等于 10000

而当1e4+1时会等于10001 所以可以利用这点来绕过if

level 2:

要求是原值与md5值进行弱比较相等 而有一个值正好即0e215962017 因为是弱比较,而且0e215962017的md值也是0e开头所以它们弱比较即是0=0

level 3:

这里的if(!strstr($get_flag," ")过滤了参数$get_flag参数中不能有空格

str_ireplace("cat", "wctf2020", $get_flag);过滤了cat 函数作用是把参数$get_flag中的cat替换成wctf2020。

system($get_flag); 说明我们可以执行命令,而cat被过滤了 我们可以利用其他命令例如:

more :可以用来查看文件内容的命令 

less  :命令是用于分页查看文件内容的

 tail :命令用于显示文件的末尾几行内容

 head :命令用于显示文件的前几行内容

这些都是可以用的,再加上空格绕过即可,空格绕过方法有:

${IFS}
$IFS$1 //$1可改加成其他数字
<
%09

因此可以构造playload:

http://dfad8383-22cf-48d9-9a39-3254b8af114c.node4.buuoj.cn:81///fl4g.php/?num=1e4&md5=0e215962017&get_flag=ls

看看目录下有什么先 

 最终playload:

http://dfad8383-22cf-48d9-9a39-3254b8af114c.node4.buuoj.cn:81///fl4g.php/?num=1e4&md5=0e215962017&get_flag=more%09fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

 得到flag:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值