作者:shahin ramezany
譯者:riusksk(泉哥:
目錄:section 1:
20種php原始碼快速審計方式
section 2:
php原始碼審計自動化( php fuzzer )
風險級別:
■ low
■ medium
■ high
在開始php**分析之前,讀者必須先完成以下兩項工作:
1. 安裝php程式;
2. 使用支援php**高亮的編輯器(比如emeditor - notepad++)。
筆者在下文中所提供的方法僅作為簡單的攻擊和防禦參考。本文旨在介紹攻擊和防禦方法。
注意1:其中一些話題歸wikipedia版權所有
注意2:必須在php原始碼中尋找以下變數:
以上變數均為php中的可輸入變數。
注意3:關於這些變數的更多資訊可訪問php官方**:www.php.net。
section 1: 20種php原始碼快速審計方式
1- cross site scripting (xss) / crlf [medium]
跨站指令碼(xss)屬於web程式中的一類計算機安全漏洞,它允許在使用者瀏覽的網頁中注入惡意**,比如html**和客戶端指令碼。可利用的跨站指令碼漏洞可被攻擊者用於繞過訪問控制,比如同源策略(same origin policy)。這類漏洞可被用於構造釣魚攻擊和瀏覽器攻擊。
攻擊:攻擊者在其請求中注入html**。
exp 1:
<?php
$error_message = $_get[error];
print $error_message ;
?>
index.php?error=
exp 2:
" >
#">
防禦:<?php
$error_message = $_get[error];
print htmlspecialchars($error_message );
?>
更多資料:
2- sql injection [medium]
sql注入是利用web程式資料層的安全漏洞進行**注入的技術。當使用者輸入的資料中並未對嵌入的sql宣告語句進行正確過濾時,或者使用者並沒有被嚴格地限制輸入,從而導致惡意**被執行,就有可能造成sql注入漏洞。這是一類很普遍的安全漏洞,它可在任何時候發生於被嵌入的程式設計或指令碼語言之中。
攻擊:sql注入是php**審計過程中發現的最為嚴重的漏洞之一,關於這類攻擊更多的資訊可以通過閱讀下面提供的參考資料獲得,而這裡只是簡述此類漏洞而已。
example 1:
<?php
$id= $_get[id];
$query= "select * from users where id= 「 .$id." ;"
...?>
index.php?id=1+union+select+1,@@version,3,4,5+from+users/*
example 2:
#login.php:
-- sql injection vulnerable page
//attack and defence php apps book
//shahriyar - j
$user = $_post[user];
$pass = $_post[pass];
$link = mysql_connect(localhost, root, pass) or die(error: .mysql_e
rror());
mysql_select_db("sql_inj", $link);
$query = mysql_query("select * from sql_inj where user =".$user." and pas
s =" .$pass. "",$link);
if (mysql_num_rows($query) == 0) {
echo"
AbstractCollection原始碼分析
abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...
ThreadPoolExecutor原始碼閱讀
執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...
OrangePi One Android 原始碼編譯
一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...