php注入例項

2021-06-23 08:02:11 字數 2815 閱讀 3503

php注入例項

在網上很難看到一篇完整的關於php注入的文章和利用**,於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉!

相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic_gpc選項確實讓人頭疼,在注入中不要出現引號,而 php大多和mysql結合,而mysql的功能上的缺點,從另外一人角度看確在一定程度上防止了sql njection的攻擊,我在這裡就舉乙個例項吧,我以phpbb2.0為例:

在viewforum.php中有乙個變數沒過濾:

如果是asp的話,相信很多人都會注入了.如果這個forum_id指定的論壇不存在的話,就會使$result為空,於是返回could not obtain forums information的資訊,於是下面的**就不能執行下去了

// // if the query doesn't return any rows this isn't a valid forum. inform

// the user.

// if ( !($forum_row = $db->sql_fetchrow($result)) )

// // start session management

// $userdata = session_pagestart($user_ip, $forum_id) /****************************************

關鍵就是打星號的那一行了,這裡是乙個函式session_pagestart($user_ip, $thispage_id),這是在session.php中定義的乙個函式,由於**太

長,就不全貼出來了,有興趣的可以自已看看,關鍵是這個函式還呼叫了session_begin(),函式呼叫如下session_begin($user_id, $user_ip,

$thispage_id, true)),同樣是在這個檔案中定義的,其中有如下**

$sql = "update " . sessions_table . "

set session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page =

$page_id, session_logged_in = $login

where session_id = '" . $session_id . "'

and session_ip = '$user_ip'";

if ( !($result = $db->sql_query($sql)) ││ !$db->sql_affectedrows() )

在這裡有個session_page在mysql中定義的是個整形數,他的値$page_id,也就是$forum_id,如果插入的不是整形就會報錯了,就會出現error

creating new session : session_begin的提示,所以要指這$forum_id的值很重要,所以我把它指定 為:-1%20union%20select%201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1%20from%20phpbb_users%20where%20user_id=2%20and%20ord(substring(user_password,1,1))=57, 沒有引號吧!雖然指定的是乙個不存在的forum_id但他返回的查詢結果可不一定是為空,這個就是猜user_id為2的使用者的第一位密碼的ascii 碼值是是否為57,如果是的話文章中第一段**中的$result可不為空了,於是就執行了ession_pagestart這個有問題的函式,插入的不 是整數當然就要出錯了,於是就顯示error creating new session : session_begin,就表明你猜對了第一位了,其它位類似.

如果沒有這句出錯資訊的話我想即使注入成功也很難判斷是否已經成功,看來出錯資訊也很有幫助啊.分析就到這裡,下面附上一段測試**,這段**只要稍加修 改就能適用於其它類似的猜md5密碼的情況,這裡我用的英文版的返回條件,中文和其它語言的只要改一下返回條件就行了.

php注入例項

php注入例項 在網上很難看到一篇完整的關於php注入的文章和利用 於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉 相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic gpc選項確實讓人頭疼,在注入中不要出現引號,而 ph...

php注入例項

php注入例項 在網上很難看到一篇完整的關於php注入的文章和利用 於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉 相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic gpc選項確實讓人頭疼,在注入中不要出現引號,而 ph...

php注入例項

php注入例項 在網上很難看到一篇完整的關於php注入的文章和利用 於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉 相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic gpc選項確實讓人頭疼,在注入中不要出現引號,而php...