php act index漏洞,浅析PHP程序中的目录遍历漏洞
這類漏洞主要是存在與基于PHP+TXT結構的程序中,漏洞代碼也是來自于一個國外的BLOG,代碼如下:
$act=$_GET['act'];if($act==''){
include("blog.txt");
}else{
include("act/$act.txt");
}
?>$blog_id=$_GET['blogid'];if($blog_id==''){
include("blog.txt");
}else{
include("./blog_entries/$blog_id.txt");
}
?>
從上面的代碼可以清晰的看出問題所在,第一段程序獲得$_GET[]提交的數據并賦值給$act,這里沒有對act做任何的過濾,而在后面判斷如果變量為空就把blog.txt包含進來,如果不為空就包含act目錄下的$act.txt文件,不過只能讀以.txt結尾的文件,讀別的文件加上 txt后綴后會提示找不到文件,可以配合某些上傳漏洞把文件包含進去,比如提交如下URL:
index.php?act=blog&blogid=../../filename這樣帶到程序里就成了include("./filename.txt");包含近來的文件只要里面含有PHP代碼就算后綴是TXT文件也會被執行,原理給上面的一樣,我就不截圖了.
上面分別介紹了現在最主要的兩種目錄遍歷漏洞,從表面上看基于TXT的PHP程序如果有這類漏洞似乎利用更方便一些,其實兩者的危害性都是等價的.其實避免這類漏洞也是很簡單的事情,象$blog-id這類數字形的參數只需用intval()函數強制整形化就可以了,對于字符形的參數我們可以自己寫一個過濾函數把危險字符過濾掉,類似代碼如下:
functionfuckchar($var){
$var=str_replace("..","",$var);
$var=str_replace(".","",$var);
$var=str_replace("/","",$var);
$var=str_replace("\","",$var);
$var=str_replace("","",$var);
}
大家可以自己測試一下這類漏洞,不管什么語言過濾的思路都是一樣的,用GOOGLE搜索: powered by Loudblog可以找到一些這類程序,不過官方現在已經推出新版本了,更多的漏洞等待大家自己去發掘吧.
當PHP配置文件中的allow_url_open打開的話,我們可以在自己的WEB服務器上建立一個同名文件里面包含shell命令,然后提交我們自己建立的shell文件讓被攻擊的服務器遠程包含,可以以WEB權限執行命令,這樣就是所謂的遠程執行命令漏洞了。
總結
以上是生活随笔為你收集整理的php act index漏洞,浅析PHP程序中的目录遍历漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用u盘下载微软系统安装win7系统
- 下一篇: 动态规划算法php,php算法学习之动态