|
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中定義的是個整形數,他的 主站蜘蛛池模板: 中文字幕在线第二页 | 日本在线精品视频 | 日本91av视频 | 韩国精品在线 | 天堂网中文字幕在线观看 | 精品亚洲一区二区三区四区五区 | 91精品国产综合久久久久久漫画 | 91亚洲国产成人久久精品网站 | 91精品免费 | 天天操天天操 | 久久精品亚洲精品国产欧美 | 国产网站在线免费观看 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 成人精品久久久 | 久久久91精品国产一区二区三区 | 亚洲午夜精品一区二区三区 | 成人精品在线观看 | 久久精品99国产精品 | 天天干天天爱天天操 | 少妇一级淫片免费放播放 | 91av在线免费观看 | 欧美久 | 欧美亚洲国产一区 | 精品香蕉一区二区三区 | 国产成人99久久亚洲综合精品 | 蜜臀久久99精品久久久久久宅男 | 国产一区精品在线 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 欧美国产精品一区二区三区 | 国产aⅴ精品| 一区二区日本 | 欧美aaaaa| 亚洲三级视频 | 久久综合欧美 | 精品无码久久久久国产 | 亚洲精品大全 | 一级电影免费看 | 在线视频成人 | 欧美中文字幕一区 | 日本久久久久久 | 国产精品亚洲视频 |