Skip to content

Commit 8c7acb2

Browse files
committed
java
1 parent 658134e commit 8c7acb2

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
## 分类
2020

21-
[Java本身的安全问题 - 12个](https://github.com/4ra1n/JavaSecInterview/tree/master/java)
21+
[Java本身的安全问题 - 15个](https://github.com/4ra1n/JavaSecInterview/tree/master/java)
2222

2323
[Shiro框架相关的安全问题 - 7个](https://github.com/4ra1n/JavaSecInterview/tree/master/shiro)
2424

java/README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,3 +193,33 @@ LinkedHashSet.readObject()
193193
- 了解缩小反序列化Payload的手段吗(★★★)
194194

195195
首先最容易的方案是使用Javassist生成字节码,这种情况下生成的字节码较小。进一步可以用ASM删除所有的LineNumber指令,可以更小一步。最终手段可以分块发送多个Payload最后合并再用URLClassLoader加载
196+
197+
198+
199+
- 谈谈实战中命令执行有哪些回显的办法(★★★★)
200+
201+
首先想到的办法是`dnslog`等技术进行外带,但必须出网,有限制
202+
203+
然后类似内存马的思路,针对指定中间件找`response`对象写入执行结果
204+
205+
尝试写文件,往`web`目录下写,例如`xx.html`可以访问到即可
206+
207+
将命令执行结果抛出异常,然后用`URLClassLoader`加载,达到报错回显
208+
209+
Y4er师傅提到的自定义类加载器配合RMI的一种方式
210+
211+
212+
213+
- 有没有了解过针对`linux`的通杀的回显方式(★★★★)
214+
215+
获取本次`http`请求用到`socket`的文件描述符,然后往文件描述符里写命令执行的结果
216+
217+
但鸡肋的地方在于需要确定源端口,才可以使用命令查到对应的文件描述符,存在反代可能有问题
218+
219+
220+
221+
- 是否存在针对`windows`的通杀的回显方式(★★★★)
222+
223+
原理类似`linux`的通杀回显,在`windows``nio/bio`中有类似于`linux`文件描述符这样的句柄文件
224+
225+
遍历`fd`反射创建对应的文件描述符,利用`sun.nio.ch.Net#remoteAddress`确认文件描述符有效性,然后往里面写数据实现回显

0 commit comments

Comments
 (0)