安全开辟底子
一、PHP[*] php文件中可能存在html,但是前端只表现html和php的执行结果
[*] php文件中执行js代码,echo js代码到欣赏器执行
[*] html的action属性指定数据处理文件,空/#,指当前文件中的代码
[*] php,header跳转函数
[*] 登入设置cookie,登出删除cookie
[*] token,保证数据包的唯一性,比如可以防止暴力破解,token是每发一次数据包就会生成一次的随机数,这个随机数是访问网站执行脚本产生的
[*] session与cookie
[*]cookie存与欣赏器,值是用户名暗码等参数,存活时间长
[*]session也存与欣赏器,但是内容是服务端的一个文件名=sessionid,这个文件中存着用户名暗码等信息,这个id存活时间短,关闭欣赏器/一段时间后未操作,服务端就会删除这个文件
sessionid一样平常存在与cookie中
[*] 文件上传判断:
[*]黑/白名单过滤
[*]后缀/类型判断、
[*] 文件包含漏洞:开辟在写代码时选择包含的文件可以由用户参数指include $_GET[‘page’]
[*] windows下令执行漏洞:管道符|,判断回显ping dnslog
[*] HTML模板:相似框架的html页面使用模板,php代码则负责替换参数,美好的页面
[*] HTML模板->下令执行漏洞:php文件会调用模板执行,在html模板文件中插入恶意php脚本
[*] 安全的第三方html模板:Smarty ,也有nday
[*] PHP安全:
[*]代码本身漏洞
[*]插件:ueditor
[*]模板:Smarty
[*]组件 :shiro、 fastjson
[*]框架:thinkphp(存在内置过滤比如SQL)
[*] 代码审计需要:熟悉框架
[*] 框架漏洞:
[*]框架本身漏洞
[*]不使用框架推荐的安全写法,原生写法
二、JS
[*]过滤代码写在前端,可绕过
[*]修改返回包导致的漏洞,现实上是:关键操作放在前端JS上执行,而不是在后端代码
[*]DOM-XSS:用户输入可控DOM导致的
[*]JS对数据加密的原因:
[*]防止批量跑PAYLOAD
[*]防止暴力破解
NodeJs: js服务端运行环境
在服务端运行的JS,前端看不见源码,只能瞥见执行结果
**RCE:**长途下令执行
[*] 调用系统下令:exec(‘clac’) 弹计算器
[*] 代码执行:eval函数字符串执行
WebPack:
[*]作用:将多个js文件打包成一个
[*]模式与源码泄露:使用开辟者模式打包导致NODEJS源码泄露,应该使用生产者模式
[*]PackerFuzzer
[*]搜索WebPack所生成的JS文件去找:未授权、信息泄露…
[*]但是findsomething,只针对网页搜索,
JQuery库漏洞
三、JAVA EE
https://i-blog.csdnimg.cn/direct/b6172477795d41378b74580781806c4a.png#pic_center
[*]数据库驱动:JDBC、Mybatis
[*]java预编译防止sql注入:输入照成语句逻辑改变就会识别
[*]Filter过滤:访问触发
[*]过滤payload
[*]根据cookie过滤未授权
[*]内存马:存在Listener、Filter中,后门存在与Serviet中,在目录中扫不到内存马
[*]Listener:动作触发,比如创建/烧毁cookie/session
[*]红队植入内存马,蓝队应急内存马
[*]内存马与JAVA,内存马是要调出来的
[*]反射机制:运行时执行,可以获取第三方库的类、对象、构造方法、成员方法,并获取/修改指,执行。
反序列化:
序列化=对象->字节省/json数据…,反序列化就是反过来。目的是为了传输对象数据更加方便高效
JAVA中的反序列化方法:
1. 内置的readObject()、XMLDecoder()
1. XStream、SnakeYaml、FastJson、Jackson
反序列化漏洞:
当反序列化的对象继承关系中存在反序列化方法的重写方法或者对象存在其他隐函数等自动触发执行的函数,这些方法会在对象反序列化的时间执行,造成RCE漏洞
JAVA 组件安全:
[*]log4j:处理日志输入输出的组件
[*]漏洞成因:log.err导致下令执行
[*]fastjson:处理json、对象数据、XLM数据格式转换的组件
[*]漏洞成因:type对象类型转换,json数据->对象反序列化漏洞
JNDI:
https://i-blog.csdnimg.cn/direct/7463ba5b049e4dc5a9741356e6426d0d.png#pic_center
JNDI:JAVA命名和目录接口
JNDI接口作用:实现长途执行class文件,使用lookup方法
常见协议:LDAP(文件目录协议)、RMI(注册表协议)
注入:思绪就是利用这个接口的功能和这两个协议,让服务端长途执行我们编写的class文件达到下令执行
限制:
https://i-blog.csdnimg.cn/direct/5225e336427a42009aa573477d3ea938.png#pic_center
jdk版本支持长途下令执行协议环境
注入工具:只针对原生jndi注入的绕过
1. Injection:不存在绕过
1. marshalsec:rmi不能绕过、ldap可以绕过版本限制
JNDI与反序列化结合案例:
fastjson存在反序列化漏洞,通过更改json的对象type类型可以或许实现执行其他对象的方法。那么只需要把这个类设置为可以调用jndi的lookup方法的类就行
SpringBoot框架:
1. mybatis三种情况容易造成sql注入
1. thymeleaf模板注入,在使用新的参数加载模板,参数可执行payload
法。那么只需要把这个类设置为可以调用jndi的lookup方法的类就行
SpringBoot框架:
1. mybatis三种情况容易造成sql注入
1. thymeleaf模板注入,在使用新的参数加载模板,参数可执行payload
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]