護網藍隊面試

在這里插入圖片描述

一、sql注入分類

**原理:**沒有對用戶輸入項進行驗證和處理直接拼接到查詢語句中

查詢語句中插?惡意SQL代碼傳遞后臺sql服務器分析執行

**從注入參數類型分:**數字型注入、字符型注入

**從注入效果分:**報錯注入、布爾注入、延時注入、聯合注入、堆疊注入、寬字節注入

**從提交方式分:**GET注入、POST注入、HTTP頭注入、COOKIE注入

**報錯注入用到的函數:**updatexml、floor、extractvalue,exp

**布爾盲注用到的函數:**substr,mid,left,right,ascii,ord,char,length

**時間盲注用到的函數:**sleep

SQL注入防御

  • 對關鍵函數或字符過濾:union select order by information_schema等
  • 下載相關防范注入文件,通過incloude函數包含在網站配置文件里面
  • pdo預處理,使用預編譯語句
  • 添加白名單來規范輸入驗證方法
  • 對客戶端輸入進行控制,限制特殊字符和函數的輸入

SQL注入繞過waf

  • 大小寫雙寫、雙寫關鍵字、空格、
  • 使用編碼:unioncode編碼 十六進制編碼 url編碼
  • 等價函數:mid,substr(),substring() &&和||> and 和or =號可以用<>因為如果不大于不小于就是等于

SQL注入寫shell條件:

  • 知道web服務器的絕對路徑
  • 數據庫具有root權限
  • secure_file_priv函數 沒有特殊的值
  • PHP關閉魔術引號,php主動轉義功能關閉

SQL寫入shell的方式:

通過本地寫入into outfile函數

通過日志寫入需要對 general_log 和 general_log_file 變量進行更改

通過sqlmap --os-shell命令寫入

**二次注入:**后端代碼對用戶輸入的數據進行了轉義,然后在保存到數據庫的時候是沒有進行轉 義,然后再從數據庫當中取出數據的時候,沒有對數據庫中的特殊字符進行轉義和驗證,就可能 形成閉合,導致注入

防御:使用統一編碼格式utf-8對用戶輸入的內容進行驗證過濾

其他常見漏洞

csrf

**原理:**跨站點請求偽造。盜用用戶身份,以用戶的名義發送惡意請求

ssrf

**原理:**利用網絡請求的服務當跳板攻擊內部其他服務

文件包含

**原理:**攻擊者通過操縱應用程序對文件路徑的處理,將惡意文件包含到應用程序中執行

文件上傳

**原理:**對上傳文件無限制后綴以及類型或者處理缺陷、導致越過本身權限向服務器上馬

繞過方法:

上傳特殊可解析后綴

上傳.htaccess(可幫助修改文件擴展名)

.user.ini文件里的意思是:所有的php文件都自動包含指定的文件

后綴大小寫、雙后綴名、空格(黑名單)

MIME、%00截斷、0x00截斷繞過(白名單)

在url中%00表示ascll碼的0 ,而ascii碼的0,表示字符串結束,所以當url中出現%00時就會認為讀取已結束
0x00原理相同

文件頭

xss

**原理:**插入惡意腳本、實現對用戶瀏覽器攻擊

**類型:**存儲、反射、dom

**反射和dom區別:**DOM-XSS是javascript處理輸出、?反射性xss是后臺程序處理

xxe

**原理:**解析用戶傳入的xml

**作用:**內?端?掃描、利?file協議等讀取?件、攻擊內?web應?使?get(struts2等)

二、如何判斷文件上傳一次攻擊

響應包是200,返回的有沒有路徑,請求包的報文內容有沒有上傳木馬,嘗試訪問路徑,能不能執行命令

三、命令執行和代碼執行

**命令執行:**Web應用的腳本代碼在執行命令的時候過濾不嚴,從而注入一段攻擊者能夠控制的代 碼,在服務器上以Web服務的后臺權限遠程執行惡意指令

**原因:**代碼層過濾不嚴,系統的漏洞造成命令注入,調用的第三方組件存在代碼執行漏洞常見執行 函數:exec、shell_exec、system、passthru、popen

**代碼執行:**由于服務器對危險函數過濾不嚴,導致用戶輸入的一些字符串可以被轉換成代碼來執行, 從而造成代碼執行

**原因:**用戶能夠控制函數輸入,存在可執行代碼的危險函數,常見執行函數:eval、assert、 preg_replace()

四、CSRF 和 XSS 和 XXE 有什么區別

XSS是跨站腳本攻擊,用戶提交的數據中可以構造代碼來執行,從而實現竊取用戶信息等攻擊。

修復方式: 對字符實體進行轉義

使用HTTP Only來禁止JavaScript讀取Cookie值

輸入時校驗

瀏覽器與Web應用端采用相同的字符編碼

CSRF是跨站請求偽造攻擊,是由于沒有在關鍵操作執行時進行是否由用戶自愿發起的確認,模仿合法用戶對服務器發起請求 。

修復方式: 篩選出需要防范CSRF的頁面然后嵌入Token

再次輸入密碼

檢驗Referer

XXE是XML外部實體注入攻擊,XML中可以通過調用實體來請求本地或者遠程內容,和遠程文件保護類似,會引發相關安全問題,例如敏感文件讀取。

修復方式: XML解析庫在調用時嚴格禁止對外部實體的解析

五、一些漏洞

shiro是apache的java安全框架,用于執行身份驗證、授權、密碼和會話管理

使用shiro易于理解的API(程序接口),可以快速輕松對應用程序進行保護

Shiro550原理導致shiro反序列化的主要原因就是shiro提供的記住密碼功能,當用戶打開這個功 能時會在請求包中生成一個cookie,cookie的value值是經過序列化->aes加密->base64加密后 的字符串,關鍵在于aes加密的秘鑰是默認的,如果沒有修改這個秘鑰,就會導致反序列化漏洞, 攻擊者可以構造惡意代碼,將惡意代碼序列化-AES加密-base64加密后傳入cookie,這樣就導致 RCE漏洞。

Shiro 721原理Shrio所使用的cookie里的rememberMe字段采用了AES-128-CBC的加密模式, 這使得該字段可以被padding oracle 攻擊利用。攻擊者可以使用一個合法有效的rememberMe 的cookie作為前綴來實施POA,然后制造一個特制的rememberMe來執行Java反序列化攻擊。

shrio550和721的區別主要區別

在于Shiro550使用已知默認密碼,只要有足夠的密碼,不需要 Rememberme的Cookie;Shiro721的AES加密的key為系統隨機生成,需要利用登錄后的 rememberMe去爆破正確的key值。利用有效的RememberMe Cookie作為Padding Oracle Attack的前綴,再去構造反序列化攻擊。

fastjson反序列化漏洞原理:

fastjson 是一個 有阿里開發的一個開源Java 類庫,可以將 Java 對象轉換為 JSON 格式(序列化),當然它也可以將 JSON 字符串轉換為 Java 對象(反序列化)

1、fastjson提供的反序列化功能允許用戶傳入json格式數據的時候通過@type的value值指定任 意反序列化類名

2、fastjson的反序列化機制會將反序列的類進行實例化對象,并調用該對象的setter和部分getter方法

3、惡意用戶可以構造payload是目標應用的代碼執行流程進入這部分setter和getter方法,如果 這些方法中存在Gadget,就會造成一些安全問題。

4、官方采取黑名單過濾的方法,對反序列化的類名進行校驗,checkAutoType不斷被繞過

log4j2原理:

log4j2是apache下的java應用常見的開源日志庫,是一個就Java的日志記錄工具

Apache Log4j2中存在JNDI注入漏洞,主要原理是利用log4j2的日志輸出jndi遠程 對象時,調用遠程對象沒做檢查導致,程序將用戶輸入的數據進行日志記錄時即可觸發該漏洞并可 在目標服務器上執行任意代碼。該漏洞利用過程需要找到一個能觸發遠程加載并應用配置的輸入 點,迫使服務器遠程加載和修改配置的前提下使目標系統通過JNDI遠程獲取數據庫源,觸發攻擊者的惡意代碼

Struts2原理:

將用戶要求按照業務邏輯執行并且返回結果

用戶提交表單數據并且驗證失敗時,后端會將用戶之前提交的參數值使用OGNL表達式 %{value}進行解析,然后重新填充到對應的表單數據中。

例如注冊或登錄頁面,提交失敗后端一般會默認返回之前提交的數據,由于后端使用 %{value} 對提交的數據執行了一次 OGNL 表達式解析,所以可以直接構造 Payload 進行命令執行

Weblogic:

漏洞描述:

Weblogic Server中的RMI 通信使用T3協議在Weblogic Server和其它Java程序(客戶端或者其它Weblogic Server實例)之間傳輸數據, 服務器實例會跟蹤連接到應用程序的每個Java虛擬機(JVM)中, 并創建T3協議通信連接, 將流量傳輸到Java虛擬機。T3協議在開放WebLogic控制臺端口的應用上默認開啟。攻擊者可以通過T3協議發送惡意的的反序列化數據, 進行反序列化, 實現對存在漏洞的weblogic組件的遠程代碼執行攻擊(開放Weblogic控制臺的7001端口,默認會開啟T3協議服務,T3協議觸發的Weblogic Server WLS Core Components中存在反序列化漏洞,攻擊者可以發送構造的惡意T3協議數據,獲取目標服務器權限。)

遠程攻擊者可利用該漏洞在未授權的情況下發送攻擊數據,通過T3協議(EJB支持遠程訪問,且支持多種協議。這是Web Container和EJB Container的主要區別)在Weblogic Server中執行反序列化操作,利用RMI(遠程方法調用) 機制的缺陷,通過JRMP協議(Java Remote Messaging Protocol:java遠程消息交換協議)達到執行任意反序列化payload的目的。

**T3協議:**用于在Weblogic服務器和其他類型的Java程序之間傳輸信息的協議。Weblogic會跟蹤連接到應用程序的每個Java虛擬機,要將流量傳輸到Java虛擬機,Weblogic會創建一個T3連接。該鏈接會通過消除在網絡之間的多個協議來最大化效率,從而使用較少的操作系統資源。用于T3連接的協議還可以最大限度減少數據包大小,提高傳輸速度。

**RMI:**遠程方法調用

使用協議:JRMP

T3就是對JRMP的優化。Java RMI 的基礎通信協議是 JRMP ,但是也支持開發其他的協議來優 化 RMI 的傳輸,這里的 Weblogic 的 T3 協議就是其優化版本,相比于JRMP協議多了一些特 性。T3協議傳輸過程中就是序列化和反序列化方式

**利用:**將原本存在的序列化內容替換成我們payload的序列化內容,在傳輸完成后,進行反序列 化達成攻擊的目的

Jboss

JBoss是一個基于J2EE的開放源代碼應用服務器,代碼遵循LGPL許可,可以在任何商業應用中免 費使用;JBoss也是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3規范。但JBoss核 心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。

兩種利用方式,第一種是利用未授權訪問進入JBoss后臺進行文件上傳的漏洞;另一種是利用Java 反序列化進行遠程代碼執行的漏洞

弱口令漏洞

system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123

六、webshell管理工具

菜刀

base64加密,php馬有eval,(base64_decode ($POST[z0])),&z0=QGluaV9zZXQ

蟻劍

以 0x 開頭的參數名,@ini_set(“display_errors”,“0”)

冰蝎

1、大量的 content-type:application,content-type 為 application/octet-stream。

2、默認內置 16 個 ua,content-length 請求長度payload 都為定長

3、Accept頭有application/xhtml+xmlapplication/xmlapplication/signed-exchange屬于弱 特征

哥斯拉

1、pass =eval(base64_decode…,pass=加密數據

2、user-agent,accept,accept-language 固定

一共會產生3個 POST 數據包,POST請求報文中參數名都是 pass (即shell的連接密碼),參 數值都是加密數據。

七、windows+Linux應急響應流程

檢查系統賬號安全查看服務器是否有弱口令

遠程管理端口是否對公網開放

查看服務器是否存在可疑賬號、新增賬號

查看服務器是否存在隱藏賬號、克隆賬號

檢查異常端口、進程

檢查啟動項、計劃任務、服務

查看可疑文件和目錄

查看webshell創建的時間

Windows入侵排查思路

1.檢查系統賬號安全 2.查看服務器是否有弱口令,遠程管理端口(3389)是否對公網開放(使用 netstat -ano 命令、或者問服務器管理員) 3.lusrmgr.msc(本地用戶和本地用戶組) 快捷命令查 看服務器是否存在可疑賬號、新增賬號,如有管理員群組的(Administrators)里的新增賬戶, 如有,請立即禁用或刪除掉 4.用 D 盾或者注冊表(regedit)中查看服務器是否存在隱藏賬號、克隆 賬號 5.結合日志,查看管理員登錄時間、用戶名是否存在異常,使用eventvwr.msc打開“事件查 看器”,導出 Windows 日志–安全,利用 Log Parser 進行分析 6.檢查異常端口、進程 netstat - ano檢查端口連接情況,是否有遠程連接、可疑連接 然后使用 tasklist |findstr PID 進行定位 7. 使用快捷命令 msconfig查看是否存在命名異常的啟動項目, 輸入regedit注冊表中查看開機啟動項是否正常,輸入gpedit.msc查看本地組策略,使用services.msc檢查是否有異常服務 8.檢查系統相關信息 systeminfo查看系統版本以及補丁信息 查找可疑目錄及文件

Linux入侵排查思路

bash的賬戶,正常為/nologin 2.查看本機開啟端口服務信息 netstat -anlutp,然后去查看每個開 啟服務所產生的日志信息 (var/log目錄下)(舉例如何查看mysql日志,首先登錄mysql,然后 使用 show variables like ‘%general_log%’ 查看日志是否開啟和路徑信息) 二、 服務入侵排查 1.使用last命令檢查系統登錄日志,統計ip登錄錯誤次數和登錄情況 2.使用 ls -l 查看 /etc/passwd文件 的修改時間 查看是否有特權用戶 查看網站開啟的端口ss -anlutp 3.使用ps - elf 看UID為0的進程 查看ssh的公鑰是否被修改 4.查看網站根目錄(/var/www)下是否存在可疑 文件 5.查看計劃任務 /etc/crontab 三、異常啟動排查 1.ps -elf 查看進程 2.查看linux 系統服務 /etc/rc.d/init.d 3.查看用戶自定義開機啟動程序 /etc/rc.d/rc.local

應急響應流程

1、收集信息:搜集客戶信息和中毒信息,備份

2、判斷類型:判斷是否是安全事件、是何種安全事件(勒索病毒、挖礦、斷網、ddos等)

3、深入分析:日志分析、進程分析、啟動項分析、樣本分析

4、清理處置:殺掉惡意進程、刪除惡意文件、打補丁、修復文件

5、產出報告:整理并輸出完整的安全事件報告

windows應急

1.查看系統賬號安全

查看服務器是否有弱口令、可疑賬號、隱藏賬號、克隆賬號、遠程管理端口是否對公網開放

win+r(eventwmr.msc)查看系統日志,查看管理員登錄時間、用戶名是否存在異常

2.檢查異常端口、進程

netstat -ano 檢查端口連接情況,是否有遠程連接、可疑連接

tasklist | findstr "PID"根據pid定位進程

使用功能查殺工具

3.啟動項檢查、計劃任務、服務

檢查服務器是否有異常的啟動項,msconfig看一下啟動項是否有可以的啟動

檢查計劃任務,查看計劃任務屬性,可以發現木馬文件的路徑

見擦汗服務自啟動,services.msc注意服務狀態和啟動類型,檢查是否有異常服務

4.檢查系統相關信息

查看系統版本以及補丁信息 systeminfo

查找可以目錄及文件 是否有新建用戶目錄 分析最近打開分析可疑文件 (%UserProfile%\Recent)

5.自動化查殺

使用360 火絨劍 webshell后門可以使用d盾 河馬等

6.日志分析

360星圖日志分析工具 ELK分析平臺

linux應急

1、檢查用戶及密碼文件/etc/passwd、/etc/shadow 是否存在多余帳號,主要看一下帳號后面 是否是 nologin,如果沒有 nologin 就要注意;

2、通過 who 命令查看當前登錄用戶(tty 本地登陸 pts 遠程登錄)、w 命令查看系統信息,想 知道某一時刻用戶的行為、uptime查看登陸多久、多少用戶,負載;

3、修改/etc/profile的文件,在尾部添加相應顯示間、日期、ip、命令腳本代碼,這樣輸入 history命令就會詳細顯示攻擊者 ip、時間歷史命令等;

4、用 netstat -antlp|more命令分析可疑端口、IP、PID,查看下 pid 所對應的進程文件路徑, 運行ls -l /proc/ P I D / e x e 或 f i l e / p r o c / PID/exe 或 file /proc/ PID/exefile/proc/PID/exe($PID 為對應的pid 號);

5、使用ps命令,分析進程 ps aux | grep pid

6、使用 vi /etc/inittab 查看系統當前運行級別,通過運行級別找到/etc/rc.d/rc[0~6].d對應目錄 是否存在可疑文件;

7、看一下crontab定時任務是否存在可疑啟用腳本;

8、使用chkconfig --list 查看是否存在可疑服務;

9、通過grep awk命令分析/var/log/secure安全日志里面是否存在攻擊痕跡;

10、chkrootkit、rkhunter、Clamav 病毒后門查殺工具對 Linux 系統文件查殺;

11、如果有 Web 站點,可通過 D 盾、河馬查殺工具進行查殺或者手工對代碼按腳本木馬關鍵 字、關鍵涵數(evel、system、shell_exec、exec、passthru system、popen)進行查殺 Webshell 后門。

八、windows事件ID

事件ID說明
4624登錄成功
4625登錄失敗
4634注銷成功
4647用戶啟動的注銷
4672使用超級用戶(如管理員)進行登錄
4720創建用戶

九、sql注入

如何判斷是攻擊還是誤報

第一時間去判斷內網還是外網,內網大部分都是172 192 10 如果是內網對內網,大概率是真實業務,很少見打到內網,查詢字段內容,響應包是否是正常業務,看狀態碼判斷攻擊成功

如果是外網,先去看狀態碼 如果是200,微步平臺看是否是惡意ip 先上報封禁,攻擊報文如果是正常業務 那我們對這個業務監控,如果是sql語句攻擊,看里面報文的攻擊語句,比如常見sleep函數延時注入,extractvalue、updatexml函數 的報錯注入,把攻擊行為給客服反饋過去

十、ssrf打redis

ssrf掃描內網,端口6379redis,然后redis未授權漏洞利用

利用dict協議可以掃描開放的端口,探測指紋信息,可以攻擊redis服務 dict://ip:port/info 截獲get請求包和post請求包,再構造成符合gopher協議的請求,從而模擬redis通信

更改redis備份路徑為ssh公鑰存放目錄(一般默認為/root/.ssh)并設置上傳公鑰的備份文件名字 為authorized_keys,將一開始生成的SSH公鑰寫入authorized_keys文件中。

十一、PHP一句話木馬

<?php @eval($_GET['cmd']); ?>
<?php @eval($_POST['cmd']); ?>
<?php @eval($_REQUEST['cmd']); ?>
<script language="php">eval($_GET['cmd']);</script>
GIF89a? <script language="php">eval($_REQUEST['mima'])</script>

十二、序列化反序列化及其流量特征

**序列化:**對象轉換為字符串

**反序列化:**字符串轉換為對象

流量特征:

**shiro反序列化:**查看cookie中rememberme字段,惡意命令要從這里傳入。判斷是否有漏洞, 查看返回包set cookie:rememberme=deleteme,驗證失敗返回的標識符。

**fastjson反序列化:**請求報文中查找json格式的數據,重點看有無rmi或者出網的一些行為

**st2-045:**請求頭中的Content-Type字段

十三、常見的設備,出現誤報怎么辦

奇安信天眼,設備類型:全流量,天眼、EDR、全流量告警、態勢感知、APT、蜜罐設備,微步tdp,青藤云HIDS,明御安全網關先去查看設備的完整流量日志等信息確認是否為誤報,誤報那就是規則問題,上報處置,提供規則優化建議

十四、wireshark指令

http contains “關鍵字”

http.response.code == 200

http.request.method == POST

tcp.prot == 80

ip.addr == "10.1.1.1"ip.srcip.dst

十五、中挖礦病毒怎么解決

首先ps -aux查看進程分析

然后top 分析算力,挖礦用到的算力比較多,對流量進行過濾,含有礦池服務器的流量就是挖礦病毒

最后kill進程,rm掉程序

刪不掉這么辦

先下線,然后檢查挖礦是否有在內網傳播及時下線所有被傳播的主機、上機排查攻擊痕跡、一般 可以從cpu占用情況,可以進程、開放端口、計劃任務、服務項幾個方面排查

將樣本上傳到在線分析平臺,清除挖礦主程序主要就是雙向封禁礦池地址、刪除計劃任務自啟 動、刪服務,結束惡意進程、刪病毒

**刪不掉:**確認一下一下是因為程序在使用,還是權限不夠,更具具體情況采取措施 直接降權,降權到沒有執行權限

十六、拿到webshell不出網情況下怎么辦

reg上傳去正向連接。探測出網協議,如dns,icmp

十七、怎么排查java內存馬

直接利用內存馬檢測工具去找,github也有很多檢測腳本,手工的話可以分析web日志,filter或者listener類型的內存馬,會有大量路徑相同參數不同的url請求,或者頁面不存在但是返回200的請求,分析web.xml文件,內存馬的Filter是動態注冊的,web.xml是沒有配置的,也有可能是中間件漏洞通過代碼執行加載內存馬,這就可以去排查中間件的錯誤日志,像哥斯拉和冰蝎的內存馬也會有跟webshell相似的特征,分析特殊的classloader加載,攻擊者喜歡利用TemplatesImpl和bcel加載內存馬,因為內存馬是駐留在內存里的,本地無class文件,通過檢測Filter對應的ClassLoader目錄下是否存在class文件來判斷,也可以把內存中所有的Filter的class dump出來,使用工具分析是否存在惡意代碼

十八、蜜罐原理

**創建虛擬環境:**在網絡中創建一個看似易受攻擊的虛擬環境,該環境模擬真實系統的一部分或全 部功能,包括應用程序、服務和操作系統。

**引誘攻擊者:**通過暴露蜜罐的存在,例如通過公開可訪問的IP地址或虛假的網站,吸引攻擊者主 動嘗試入侵、掃描或攻擊蜜罐系統。

**監測和記錄:**一旦攻擊者進入蜜罐系統,蜜罐會記錄攻擊者的行為、攻擊技術和使用的工具。 這些信息對于理解攻擊者的策略和行為非常有價值。

**分析和響應:**通過分析記錄的數據,研究人員可以識別攻擊者的行為模式、漏洞利用方法和漏洞 的目標。

這些信息可以用于改進真實系統的安全性,及時發現和應對新的威脅。 蜜罐的優勢在于能夠提供高質量的攻擊數據和情報,幫助安全團隊更好地了解攻擊者的行為模式和目的,加強防御措施并及時應對威脅。

然而,蜜罐也需要專業人員來設計、部署和管理,以確保其安全性和有效性,并避免對真實系統 造成潛在的風險。

十九、內存馬查殺&原理

java內存馬原理

通過在Java虛擬機(JVM)中運行的惡意代碼,實現對被攻擊者系統的遠程控制。其原理是通過在Java虛擬機中注入特定的Java類、變量或方法等Java對象,然后在Java虛擬機中運行這些代碼,實現對受害者機器的遠程控制

java內存馬排查

利用Java Agent技術遍歷所有已經加載到內存中的class。 先判斷是否是內存馬,是則進入內存查殺。

識別

1,filter名字很特別

2,filter優先級是第一位

3,對比web.xml中沒有filter配置

4,特殊classloader加載

5,對應的classloader路徑下沒有class文件

6,Filter的doFilter方法中 有惡意代碼

清除

1、清除內存馬中的Filter的惡意代碼,2、 模擬中間件注銷Filter

二十、常見的危險PHP函數總結

eval() — 把字符串作為PHP代碼執行

語法eval( string $code ) : mixed

把字符串 code 作為PHP代碼執行。

這個函數一般都是攻擊者用的,沒什么人會拿這個放到自己的源碼里面

PHP官方也給出了警告

image-20240627111043558

assert() — 檢查一個斷言是否為 false (把字符串作為PHP代碼執行)

語法

PHP 5

assert( mixed $assertion , string $description = ? ) : bool

PHP 7

assert( mixed $assertion , Throwable $exception = ? ) : bool

assert()會檢查指定的 assertion 并在結果為 false 時采取適當的行動(把字符串 $assertion 作為PHP代碼執行)

preg_replace — 執行一個正則表達式的搜索和替換

語法

preg_replace( mixed $pattern , mixed $replacement , mixed $subject , int KaTeX parse error: Expected 'EOF', got '&' at position 18: …mit = -1 , int &?count = ? ) : mixed

搜索 subject 中匹配 pattern 的部分,以 replacement 進行替換。

/e 修正符使 preg_replace() 將 replacement 參數當作 PHP 代碼

preg_replace("/test/e",$_GET["h"],"jutst test");

如果我們提交 ?h=phpinfo(),/e就會將h參數當做PHP代碼,phpinfo()將會被執行。

引發命令執行的危險函數

system — 執行外部程序,并且顯示輸出

說明

system( string $command , int &$return_var = ? ) : string

同 C 版本的 system()函數一樣, 本函數執行 command 參數所指定的命令, 并且輸出執行結果。

如果 PHP 運行在服務器模塊中, system()函數還會嘗試在每行輸出完畢之后, 自動刷新 web服務器的輸出緩存。

如果要獲取一個命令未經任何處理的 原始輸出,請使用 passthru()函數。

舉個例子

<?php system("whoami");?>

image-20240627111507963

exec — 執行一個外部程序

exec()執行 command 參數所指定的命令

舉個例子

<?php echo exec("whoami");?>

image-20240627111548732

shell_exec — 通過 shell 環境執行命令,并且將完整的輸出以字 符串的方式返回。

<?php echo shell_exec("whoami");?>

passthru — 執行外部程序并且顯示原始輸出

<?php passthru("whoami");?>
引發文件包含的危險函數

主要作用為包含并運行指定文件。

  1. include():代碼執行到此函數時才將文件包含進來,發?錯誤時只警告并繼續執行
  2. include_once():功能和前者一樣,區別在于調用同一文件時,程序只調用一次
  3. require():立即調用此函數包含文件,發?錯誤時,會輸出錯誤信息 并?即終?程序
  4. require_once():功能和前者一樣,區別在于調用同一文件時,程序只調用一次

include $file;

在變量 $file 可控的情況下,我們就可以包含任意文件,從而達到 getshell 的目的。

另外,在不同的配置環境下,可以包含不同的文件。

因此又分為遠程文件包含和本地文件包含。

包含函數也能夠讀取任意文件內容,這就需要用到【支持的協議和封裝協議】和【過濾器】。

例如,利用php流filter讀取任意文件

include($_GET[‘file’]);

?file=php://filter/convert.base64-encode/resource=index.php

解釋:?file=php:// 協議 / 過濾器 / 文件

引發文件操作的危險函數

copy

file_get_contents()

highlight_file()

fopen()

read file()

fread()

fgetss()

fgets()

parse_ini_file()

show_source()

file()

任意文件讀取、寫入、刪除往往是上面幾個函數受到了控制(當然還有其他的函數)。 不同的函數在不同的場景有不同的作用和不同的利用手法。

讀取:可以讀取配置等文件,拿到key

寫入:可以寫入shell代碼相關的內容

刪除:可以刪除.lock文件而可以重新安裝覆蓋

更多思路請自行挖掘測試!!

引發信息泄露的危險函數

phpinfo — 輸出關于 PHP 配置的信息

getenv — 獲取一個環境變量的值

get_current_user — 獲取當前 PHP 腳本所有者名稱

getlastmod — 獲取頁面最后修改的時間

ini_get — 獲取一個配置選項的值

glob — 尋找與模式匹配的文件路徑

引發XEE的危險函數

__construct()

addAttribute()

addChild()

asXML()

attributes()

children()

getDocNamespaces()

getName()

getNamespaces()

registerXPathNamespace()

simplexml_import_dom()

simplexml_load_file()

simplexml_load_string()

xpath()

引發反序列化的危險函數

序列化函數:serialize()

反序列化函數:unserialize()

魔術函數:

__construc()

__destruct()

__call()

__callStatic()

__get()

__set()

__isset()

__unset()

__sleep()

__wakeup()

__toString()

__invoke()

__set_state()

__clone()

__debuginfo()

二十一、Java危險函數

Java命令執行的函數

Runtime類

Runtime類是私有的, 類的對象無法通過這種方式注冊: Runtime r = new Runtime() ;

只能通過靜態方法(getRuntime)獲取: Runtime r = Runtime.getRuntime();

ProcessBuilder類

這種復現本質意義不大,重點是記一下敏感函數,

rce2Servlet.java

ProcessImpl類ProcessImpl類通常是為ProcessBuilder.start()創建新進 程服務的,不能直接去調用。

看到ProcessImpl類構造器私有,所以不能直接對其進行實例化,為了演示可以用反射進行調 用。

在獲取到一個靜態方法后,必須用setAccessible修改它的作用域,否則不能調用。

二十二、如何快速判定xss類型

存儲型xss:

發送?次帶XSS代碼的請求,以后這個??的返回包?都會有XSS代碼

反射型xss:

發送?次帶XSS代碼的請求,只能在當前返回的數據包中發現XSS代碼

dom型xss:

發送?次帶XSS代碼的請求,在返回包?壓根?就找不到XSS代碼的影?

二十三、csrf、ssrf和重放攻擊有什么區別

CSRF是跨站請求偽造攻擊,由客戶端發起

SSRF是服務器端請求偽造,由服務器發起

重放攻擊是將截獲的數據包進?重放,達到身份認證等?的

常見對應端口及服務

image-20240610192109884

設備

安全設備
奇安信天眼
設備類型:全流量
大致使用方法
天眼首頁截圖:

左邊監測控制臺,打開,有告警信息:

分析時覺得IP有問題可以在攻擊IP中搜索

打開告警列表(奇安信網神?):

點擊詳情,顯示如下內容:

微步tdp/tip
TDP的
主頁面:

主要點擊外部攻擊的外部攻擊項

告警主機項,上面可以查詢IP:

內網滲透分析,被攻陷后可以看網絡拓撲:

優勢項:自動識別一些惡意IP,即答:tdp威脅情報發現有利于溯源分析


青藤云HIDS
設備類型:全流量
大致使用方法
主頁面,主機資產,安全臺賬功能,將可疑IP放到里面點擊主機詳情,看是不是內部IP:

點擊入侵事件,查看告警,點擊告警的漏洞名稱,可以跳到類似于天眼的詳情信息頁面

可以查日志,篩選IP/域名/進程進行查詢

優勢項:可以直接發現暴力破解,不需要人工添加規則

明御安全網關
總結優勢
HIDS:對全網信息捕捉

微步:

攻擊發現,會顯示攻擊者畫像 方便溯源分析
威脅情報發現,發現惡意IP
亞信:ei攔截的惡意文件會自動在an中運行檢測生成報告

ddei郵件網關,過濾垃圾郵件,對惡意文件隔離
ddan沙箱(=微步云沙箱):檢測惡意文件,分析惡意樣本,收集攻擊信息,生成行為報告

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/39827.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39827.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39827.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測試引擎模擬接口實戰

在上一章的內容中&#xff0c;我簡單介紹了整個微服務的各個子模塊&#xff0c;還封裝了一些工具類。 當然&#xff0c;若還沒完成上次內容的也可以點擊右側的傳送門------傳送門 EngineApplication 在開發測試引擎模擬接口之前&#xff0c;還需要給xxx-engine創建一個Sprin…

bpftrace幾種使用實例

1. 排查內存泄漏 memory.c memory.bt 可以執行相關memory&#xff0c;用bpftrace追蹤malloc和free的過程 修改memory.bt&#xff0c;加上malloc和free統計&#xff0c;重新執行 2. 驗證tcp連接關閉是應用關閉還是內核關閉 nginx服務啟動后&#xff0c;會處于監聽狀態&…

Linux python3.6安裝mayavi報錯

需要將vtk版本降級&#xff0c;以及uninstall pyqt5&#xff08;安裝的vtk版本是9.3.1&#xff09; pip3 install vtk8.1.0 或者9.0.1 報錯 Building wheels for collected packages: mayavi Building wheel for mayavi (setup.py) ... error ERROR: Command errored out…

速盾:cdn防止采集?

CDN&#xff08;Content Delivery Network&#xff09;是一種網絡加速技術&#xff0c;主要用于分發網站內容給用戶&#xff0c;并提供一定的安全保護。CDN的主要作用是通過將網站的靜態資源&#xff08;如圖片、CSS、JS等&#xff09;緩存到分布在全球各地的服務器上&#xff…

imx6ull/linux應用編程學習(9)串口應用編程

什么是串口&#xff1f; 串口全稱叫做串行接口&#xff0c;串行接口指的是數據一個一個的按順序傳輸&#xff0c;通信線路簡單。使用兩條線即可實現雙向通信&#xff0c;一條用于發送&#xff0c;一條用于接收。串口通信距離遠&#xff0c;但是速度相對會低&#xff0c;串口是一…

GPU相關的一些截圖(備查,待整理)

GPU相關的一些截圖 這里記錄一些與GPU相關的截圖,方便查閱

多空決戰恒指18000,港股估值有望修復!

港股三大指數早盤沖高午后維持高位震蕩&#xff0c;市場情緒回升明顯。截至收盤&#xff0c;恒生科技指數大幅上漲0.63表現最佳&#xff0c;恒指、國指分別上漲0.28%及0.23%&#xff0c;恒指盤中一度收復萬八關口。但高開后漲幅收窄&#xff0c;截至收盤&#xff0c;恒指漲0.28…

MySQL8 快速導入數據指令load Data 最全詳解

MySQL8 快速導入數據指令load Data 最全詳解 修改mysql配置文件修改my.ini文件進入mysql,進入庫"ceshi"查詢你導入的數據表導入數據查詢導入的數據 項目基礎windows版本MySQL8 修改mysql配置文件 找到mysql的安裝目錄下的my.ini文件 C:\ProgramData\MySQL\MySQL Serv…

【雙出版加持!錄用率高!見刊、檢索更穩定!】第六屆結構抗震與土木工程研究國際學術會議 (ICSSCER 2024,8月16-18)

隨著社會的發展&#xff0c;城市規模的不斷擴大&#xff0c;建筑形態也趨于多樣化和復雜化&#xff0c;建筑結構形式逐漸由規則簡單向高層、大跨甚至特殊復雜的方向發展。而房屋建筑是人們正常生活和生產活動的基本場所&#xff0c;房屋建筑結構的安全必須得到充分保障。但是&a…

菱形繼承和菱形虛擬繼承

c具有多繼承的特性&#xff0c;那么菱形繼承就是多繼承的一種特殊情況&#xff0c;但是菱形繼承會出現一些問題&#xff0c;比如數據冗余和二義性&#xff1b; 那么怎么解決這個問題呢&#xff1f; 菱形虛擬繼承 菱形虛擬繼承的原理 class A { public:int _a; };class B: v…

【Linux】探索網絡編程:TCP/UDP協議解析與Socket應用實例

文章目錄 前言&#xff1a;1. 預備知識1.1 理解源IP地址和目的IP地址1.2 認識端口號1.3 理解"端口號"和"進程ID"1.4 理解源端口號和目的端口號1.5 認識TCP協議1.6 認識UDP協議1.6 TCP vs UDP 可靠性1.7 網絡字節序 2. socket 編程接口2.1 socket 常見API2.…

Pandas數據清洗實戰:精準捕捉并優雅過濾異常值,讓數據分析更可靠!

1.describe()&#xff1a;查看每一列的描述性統計量 # 導包 import numpy as np import pandas as pddf pd.DataFrame(datanp.random.randint(0,10,size(5,3)),indexlist("ABCDE"),columns["Python","NumPy","Pandas"]) dfdf.descri…

2024年7月5日 十二生肖 今日運勢

小運播報&#xff1a;2024年7月5日&#xff0c;星期五&#xff0c;農歷五月三十 &#xff08;甲辰年庚午月庚午日&#xff09;&#xff0c;法定工作日。 紅榜生肖&#xff1a;狗、羊、虎 需要注意&#xff1a;雞、牛、鼠 喜神方位&#xff1a;西北方 財神方位&#xff1a;正…

聯合查詢(多表查詢)

多表查詢是對多張表的數據取笛卡爾積&#xff08;關聯查詢可以對關聯表使用別名&#xff09; 數據準備 insert into classes(name, desc) values (計算機系2019級1班, 學習了計算機原理、C和Java語言、數據結構和算法), (中文系2019級3班,學習了中國傳統文學), (自動化2019級5…

土地規劃與文化遺產保護:在發展浪潮中守護歷史的脈絡

在這個日新月異的時代&#xff0c;城市化進程如火如荼&#xff0c;土地規劃作為引導城市發展方向的關鍵&#xff0c;承載著平衡發展與保護的重任。在追求現代化的同時&#xff0c;保護文化遺產不僅是對過去的尊重&#xff0c;更是對未來負責。本文旨在深入探討如何在土地規劃實…

uniapp----- 判斷小程序版本有沒有更新

const updateManager uni.getUpdateManager();// 當向小程序后臺請求完新版本信息&#xff0c;會進行回調updateManager.onCheckForUpdate(function (res) {console.log(是否有新版本, res.hasUpdate);});// 當新版本下載完成&#xff0c;會進行回調updateManager.onUpdateRea…

為了SourceInsight從Linux回到Windows

什么是SourceInsight 現在上網搜索這個軟件&#xff0c;大多數說他是一個代碼閱讀軟件&#xff1b;但是在官方的說法里面&#xff0c;這是一款支持多語言的編輯器。大概長這樣&#xff1a; 看起來十分老舊是吧&#xff0c;但是他其實他已經是第四代了哈哈哈。其實這個軟件是我…

字典樹模板+位運算

P3879 [TJOI2010] 閱讀理解 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) trie樹板子題&#xff0c;稍微有一丟丟不一樣&#xff0c;套用字典樹模板稍加修改就能過 手搓字典樹代碼&#xff1a; char ch[1010][26], cnt[1010], idx; void insert(string s)//插入 {int p 0…

高校搭建AIGC新媒體實驗室,創新新聞教育教學模式

高校作為人才培養的重要陣地&#xff0c;必須緊跟時代步伐&#xff0c;不斷創新教育教學模式&#xff0c;提升跨界融合育人水平&#xff0c;通過AIGC新媒體實驗室探索創新人才培養模式。AIGC新媒體實驗室不僅能夠高效賦能高校宣傳媒體矩陣&#xff0c;也可以助力教學實踐與AIGC…

ISA95-Part3-通訊協議的解析與開發指南

在 MES/MOM 系統中實現 ISA-95 標準的通信協議部分,通常涉及以下幾個關鍵步驟和應用場景: 一、關鍵步驟和應用場景: 1. ~協議選擇~: - MES/MOM 系統需選擇符合 ISA-95 標準的通信協議,常用的有 OPC UA(OLE for Process Control Unified Architecture)、XML、以及基于 H…