- 目录
- 1. 序章
- 2. 计算机网络与协议
- 3. 信息收集
- 4. 常见漏洞攻防
- 5. 语言与框架
- 6. 内网渗透
- 7. 云安全
- 8. 防御技术
- 9. 认证机制
- 10. 工具与资源
- 11. 手册速查
- 12. 其他
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
5.3.11. 常见 Sink
5.3.11. 常见Sink
5.3.11.1. 命令执行/注入
- java.lang.Runtime.getRuntime().exec()
- java.lang.ProcessBuilder
5.3.11.2. XXE
- java.net.bull.javamelody.PayloadNameRequestWrapper
- javax.xml.bind.Unmarshaller
- javax.xml.parsers.DocumentBuilderFactory
- javax.xml.parsers.SAXParser
- javax.xml.stream.XMLStreamReader
- javax.xml.transform.sax.SAXSource
- javax.xml.transform.sax.SAXTransformerFactory
- javax.xml.transform.TransformerFactory
- javax.xml.validation.SchemaFactory
- javax.xml.validation.Validator
- javax.xml.xpath.XpathExpression
- org.apache.commons.digester3.Digester
- org.apache.ofbiz.base.util.UtilXml
- org.dom4j.io.SAXReader
- org.jdom.input.SAXBuilder
- org.jdom2.input.SAXBuilder
- org.xml.sax.helpers.XMLReaderFactory
- org.xml.sax.XMLReader
5.3.11.3. SSRF
- HttpClient.execute
- HttpClients.execute
- HttpURLConnection.getInputStream
- ImageIO.read
- OkHttpClient.newCall.execute
- Request.Get.execute
- Request.Post.execute
- URL.openStream
- URLConnection.getInputStream
5.3.11.4. 反序列化
5.3.11.4.1. 相关Sink函数
JSON.parseObject
ObjectInputStream.readObject
ObjectInputStream.readUnshared
ObjectMapper.readValue
XMLDecoder.readObject
XStream.fromXML
Yaml.load
5.3.11.4.2. Magic Call
以下的魔术方法都会在反序列化过程中被自动的调用。
readObject
readExternal
readResolve
readObjectNoData
validateObject
finalize
5.3.11.4.3. 主流JSON库
主流的JSON库有Gson、Jackson、Fastjson等,因为JSON常在反序列化中使用,所以相关库都有较大的影响。
其中Gson默认只能反序列化基本类型,如果是复杂类型,需要程序员实现反序列化机制,相对比较安全。
Jackson除非指明@jsonAutoDetect,Jackson不会反序列化非public属性。在防御时,可以不使用enableDefaultTyping方法。相关CVE有CVE-2017-7525、CVE-2017-15095。
FastJson是阿里巴巴的开源JSON解析库,支持将Java Bean序列化为JSON字符串,也支持从JSON字符串反序列化到Java Bean,相关CVE有CVE-2017-18349等。
FastJson常见的Sink点有:
JSON.toJSONString
JSON.parseObject
JSON.parse
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论