Home Backend Development PHP Tutorial 三个白帽挑战赛第三期的简单思路(第一次接触php反序列化)

三个白帽挑战赛第三期的简单思路(第一次接触php反序列化)

Jun 23, 2016 pm 01:11 PM

又一期三个白帽来了,由于某些原因,就只讲讲大概的思路,就不讲那么详细啦。主要是第一次接触反序列化。感觉又学到了新姿势。哈哈

一、界面没什么变化,还是注册用户,然后登陆。

二、登陆之后出现选择控制面板的选项,一个是管理员的面板选项,另一个是普通会员的面板选项。很明显需要越权啦。

三、根据tips直接用0x就能提权为管理员。

四、进入管理员的界面,可以编辑文章,还有搜索选项,从代码来看,很明显有个注入

五、准备利用注入写shel,发现mysql权限不够,web目录不能写进去,其他目录可写。

六、得到群里某牛的提醒要反序列化,瞬间明白。就去看了些反序列化的资料,并且仔细拜读了p牛的关于joomla的反序列化漏洞的分析。

七、然后审计代码,很明显就找到了漏洞触发点

其中的path是cach/md5(username).txt

这部分代码的大概意思是,用户登录后就会去反序列化path文件里面的内容,析构函数__destruct()马上又会把之前的变量序列化成字符串。然后再写入path路径当中。

八、

其实这个时候大概的思路已经清晰了。通过search那个注入点,往cach目录写一个你md5(username).txt的文件,内容就是一段序列化的字符串。包含path,而且path的值就是你的一句话的绝对路径,然后内容里面随便加个变量名,然后内容是一句话,制作这个字符串一定要细心啦,格式要求很严格,不然老报错,我就吃了不少坑,建议去看看序列化的文档。

给一个demo吧。

x:i:3;a:0:{};m:a:2:{s:4:"path";s:36:"/var/www/html/public/upload/xxxx.php";s:4:"test";s:24:"";}

大概是长这样,你可以自己改其他的

写进去之后,当构造函数去反序列化的的时候,$path已经是 /var/www/html/public/upload/xxxx.php了。$cache 经过序列化之后就是  x:i:3;a:0:{};m:a:2:{s:4:"path";s:36:"/var/www/html/public/upload/xxxx.php";s:4:"test";s:24:"";} 这个了,这样经过file_put_cntents函数,就往public/upload目录写去进了一个包含一句话的php文件了

这里提一下两点:

1、username肯定是要没有注册过的,因为你注册过的话,cache目下就存在那个文件了,用sql注入就写不进去了。所以注入写入一个的MD5(未注册的username).txt,然后你再注册那个username,这样牛能成功加载到你写入的那个文件。

2、写文件的时候用16进制去写,不然后字符串的‘;’要掉,而且也不要union select 1,xxxxx,3这样写,因为这样会把数字写进文件,而反序列化要求的是不能有脏数据的字符串,所以这样写反序列化会失败的。所以建议这样 union select 0xxxxxx,'',''这样写比较好,我再这里被自己坑死了

写的简单,可能有不太对的地方,望见谅

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

11 Best PHP URL Shortener Scripts (Free and Premium) 11 Best PHP URL Shortener Scripts (Free and Premium) Mar 03, 2025 am 10:49 AM

Long URLs, often cluttered with keywords and tracking parameters, can deter visitors. A URL shortening script offers a solution, creating concise links ideal for social media and other platforms. These scripts are valuable for individual websites a

Introduction to the Instagram API Introduction to the Instagram API Mar 02, 2025 am 09:32 AM

Following its high-profile acquisition by Facebook in 2012, Instagram adopted two sets of APIs for third-party use. These are the Instagram Graph API and the Instagram Basic Display API.As a developer building an app that requires information from a

Working with Flash Session Data in Laravel Working with Flash Session Data in Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

Build a React App With a Laravel Back End: Part 2, React Build a React App With a Laravel Back End: Part 2, React Mar 04, 2025 am 09:33 AM

This is the second and final part of the series on building a React application with a Laravel back-end. In the first part of the series, we created a RESTful API using Laravel for a basic product-listing application. In this tutorial, we will be dev

Simplified HTTP Response Mocking in Laravel Tests Simplified HTTP Response Mocking in Laravel Tests Mar 12, 2025 pm 05:09 PM

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

cURL in PHP: How to Use the PHP cURL Extension in REST APIs cURL in PHP: How to Use the PHP cURL Extension in REST APIs Mar 14, 2025 am 11:42 AM

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

12 Best PHP Chat Scripts on CodeCanyon 12 Best PHP Chat Scripts on CodeCanyon Mar 13, 2025 pm 12:08 PM

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

Announcement of 2025 PHP Situation Survey Announcement of 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

The 2025 PHP Landscape Survey investigates current PHP development trends. It explores framework usage, deployment methods, and challenges, aiming to provide insights for developers and businesses. The survey anticipates growth in modern PHP versio

See all articles