php taint安装失败,PHP Taint – 一个用来检测XSS漏洞的扩展
作者: Laruence
之前, 小頓和我提過一個想法, 就是從PHP語言層面去分析,找出一些可能的XSS漏洞代碼. 當時我一來沒時間, 而來也確實不知道從何處下手..
直到上周的時候, 我看到了這個RFC: RFC:Taint.
但是這個RFC的問題在于, 它需要為PHP打Patch, 修改了PHP本身的數據結構, 這對于以后維護, 升級PHP來說, 很不方便, 也會有一些隱患.
雖然這樣, 但這個RFC卻給了我一個啟發, 于是我就完成了這樣的一個擴展:Taint Extension
這個擴展使用起來, 很簡單(目前只支持5.2.6 ~ 5.3.10):
下載源代碼以后, 編譯, 安裝. 然后在php.ini中要開啟這個擴展(建議不要在生產環境開啟這個擴展):
extension=taint.so
taint.enable=
啟用這個擴展以后, 如果在一些關鍵函數(或者語句: echo, print, system, exec, 等等), 或者輸出的地方*直接*(沒有經過轉義, 安全過濾處理)使用了來自$_GET, $_POST或者$_COOKIE的數據, 則Taint就會提示你:
$a = $_GET['a'];
$file_name = '/tmp' . $a;
$output = "Welcome, {$a} !!!";
$var = "output";
$sql = "Select * from " . $a;
$sql .= "ooxx";
echo $output;
//Warning: main(): Attempt to echo a string which might be tainted in xxx.php on line x
print $$var;
//Warning: main(): Attempt to print a string which might be tainted in xxx.php on line x
include($file_name);
//Warning: include() [function.include]: File path contains data that might be tainted in xxx.php on x
mysql_query($sql);
//Warning: mysql_query() [function.mysql-query]: First argument contains data that might be tainted in xxx.php on line x
?>
目前因為還沒有支持5.4(5.4的實現方法, 要依賴于我將要和Dmitry討論的一個新需求), 所以目前還沒有發布一個下載包, 大家可以先直接從源代碼下載: Taint on Github.
上面的例子顯示了簡單的用法, 回頭我會再完善下文檔….
enjoy~
http://www.dengb.com/aqgjrj/498977.htmlwww.dengb.comtruehttp://www.dengb.com/aqgjrj/498977.htmlTechArticle作者: Laruence 之前, 小頓和我提過一個想法, 就是從PHP語言層面去分析,找出一些可能的XSS漏洞代碼. 當時我一來沒時間, 而來也確實不知道從...
總結
以上是生活随笔為你收集整理的php taint安装失败,PHP Taint – 一个用来检测XSS漏洞的扩展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle analyze分区表,Po
- 下一篇: oracle中触发器的语法,解析Orac