淘宝网站开发店铺什么类别,网络营销方式,烟台建站程序,wordpress调用分类名一、sql注入分类
**原理#xff1a;**没有对用户输入项进行验证和处理直接拼接到查询语句中
查询语句中插⼊恶意SQL代码传递后台sql服务器分析执行
**从注入参数类型分#xff1a;**数字型注入、字符型注入
**从注入效果分#xff1a;**报错注入、布尔注入、延时注入、联…
一、sql注入分类
**原理**没有对用户输入项进行验证和处理直接拼接到查询语句中
查询语句中插⼊恶意SQL代码传递后台sql服务器分析执行
**从注入参数类型分**数字型注入、字符型注入
**从注入效果分**报错注入、布尔注入、延时注入、联合注入、堆叠注入、宽字节注入
**从提交方式分**GET注入、POST注入、HTTP头注入、COOKIE注入
**报错注入用到的函数**updatexml、floor、extractvalueexp
**布尔盲注用到的函数**substrmidleftrightasciiordcharlength
**时间盲注用到的函数**sleep
SQL注入防御
对关键函数或字符过滤union select order by information_schema等下载相关防范注入文件通过incloude函数包含在网站配置文件里面pdo预处理使用预编译语句添加白名单来规范输入验证方法对客户端输入进行控制限制特殊字符和函数的输入
SQL注入绕过waf
大小写双写、双写关键字、空格、使用编码unioncode编码 十六进制编码 url编码等价函数midsubstrsubstring 和|| and 和or 号可以用因为如果不大于不小于就是等于
SQL注入写shell条件
知道web服务器的绝对路径数据库具有root权限secure_file_priv函数 没有特殊的值PHP关闭魔术引号php主动转义功能关闭
SQL写入shell的方式
通过本地写入into outfile函数
通过日志写入需要对 general_log 和 general_log_file 变量进行更改
通过sqlmap --os-shell命令写入
**二次注入**后端代码对用户输入的数据进行了转义然后在保存到数据库的时候是没有进行转 义然后再从数据库当中取出数据的时候没有对数据库中的特殊字符进行转义和验证就可能 形成闭合导致注入
防御使用统一编码格式utf-8对用户输入的内容进行验证过滤
其他常见漏洞
csrf
**原理**跨站点请求伪造。盗用用户身份以用户的名义发送恶意请求
ssrf
**原理**利用网络请求的服务当跳板攻击内部其他服务
文件包含
**原理**攻击者通过操纵应用程序对文件路径的处理将恶意文件包含到应用程序中执行
文件上传
**原理**对上传文件无限制后缀以及类型或者处理缺陷、导致越过本身权限向服务器上马
绕过方法
上传特殊可解析后缀
上传.htaccess可帮助修改文件扩展名
.user.ini文件里的意思是所有的php文件都自动包含指定的文件后缀大小写、双后缀名、空格黑名单
MIME、%00截断、0x00截断绕过白名单
在url中%00表示ascll码的0 而ascii码的0表示字符串结束所以当url中出现%00时就会认为读取已结束
0x00原理相同文件头
xss
**原理**插入恶意脚本、实现对用户浏览器攻击
**类型**存储、反射、dom
**反射和dom区别**DOM-XSS是javascript处理输出、⽽反射性xss是后台程序处理
xxe
**原理**解析用户传入的xml
**作用**内⽹端⼝扫描、利⽤file协议等读取⽂件、攻击内⽹web应⽤使⽤get(struts2等)
二、如何判断文件上传一次攻击
响应包是200,返回的有没有路径,请求包的报文内容有没有上传木马,尝试访问路径,能不能执行命令
三、命令执行和代码执行
**命令执行**Web应用的脚本代码在执行命令的时候过滤不严,从而注入一段攻击者能够控制的代 码,在服务器上以Web服务的后台权限远程执行恶意指令
**原因**代码层过滤不严系统的漏洞造成命令注入,调用的第三方组件存在代码执行漏洞常见执行 函数exec、shell_exec、system、passthru、popen
**代码执行**由于服务器对危险函数过滤不严,导致用户输入的一些字符串可以被转换成代码来执行, 从而造成代码执行
**原因**用户能够控制函数输入,存在可执行代码的危险函数常见执行函数eval、assert、 preg_replace()
四、CSRF 和 XSS 和 XXE 有什么区别
XSS是跨站脚本攻击用户提交的数据中可以构造代码来执行从而实现窃取用户信息等攻击。
修复方式 对字符实体进行转义
使用HTTP Only来禁止JavaScript读取Cookie值
输入时校验
浏览器与Web应用端采用相同的字符编码
CSRF是跨站请求伪造攻击是由于没有在关键操作执行时进行是否由用户自愿发起的确认模仿合法用户对服务器发起请求 。
修复方式 筛选出需要防范CSRF的页面然后嵌入Token
再次输入密码
检验Referer
XXE是XML外部实体注入攻击XML中可以通过调用实体来请求本地或者远程内容和远程文件保护类似会引发相关安全问题例如敏感文件读取。
修复方式 XML解析库在调用时严格禁止对外部实体的解析
五、一些漏洞
shiro是apache的java安全框架用于执行身份验证、授权、密码和会话管理
使用shiro易于理解的API程序接口可以快速轻松对应用程序进行保护
Shiro550原理导致shiro反序列化的主要原因就是shiro提供的记住密码功能当用户打开这个功 能时会在请求包中生成一个cookiecookie的value值是经过序列化-aes加密-base64加密后 的字符串关键在于aes加密的秘钥是默认的如果没有修改这个秘钥就会导致反序列化漏洞 攻击者可以构造恶意代码将恶意代码序列化-AES加密-base64加密后传入cookie这样就导致 RCE漏洞。
Shiro 721原理Shrio所使用的cookie里的rememberMe字段采用了AES-128-CBC的加密模式 这使得该字段可以被padding oracle 攻击利用。攻击者可以使用一个合法有效的rememberMe 的cookie作为前缀来实施POA然后制造一个特制的rememberMe来执行Java反序列化攻击。
shrio550和721的区别主要区别
在于Shiro550使用已知默认密码只要有足够的密码不需要 Rememberme的CookieShiro721的AES加密的key为系统随机生成需要利用登录后的 rememberMe去爆破正确的key值。利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀再去构造反序列化攻击。
fastjson反序列化漏洞原理
fastjson 是一个 有阿里开发的一个开源Java 类库可以将 Java 对象转换为 JSON 格式(序列化)当然它也可以将 JSON 字符串转换为 Java 对象反序列化
1、fastjson提供的反序列化功能允许用户传入json格式数据的时候通过type的value值指定任 意反序列化类名
2、fastjson的反序列化机制会将反序列的类进行实例化对象并调用该对象的setter和部分getter方法
3、恶意用户可以构造payload是目标应用的代码执行流程进入这部分setter和getter方法如果 这些方法中存在Gadget就会造成一些安全问题。
4、官方采取黑名单过滤的方法对反序列化的类名进行校验checkAutoType不断被绕过
log4j2原理
log4j2是apache下的java应用常见的开源日志库是一个就Java的日志记录工具
Apache Log4j2中存在JNDI注入漏洞主要原理是利用log4j2的日志输出jndi远程 对象时,调用远程对象没做检查导致程序将用户输入的数据进行日志记录时即可触发该漏洞并可 在目标服务器上执行任意代码。该漏洞利用过程需要找到一个能触发远程加载并应用配置的输入 点迫使服务器远程加载和修改配置的前提下使目标系统通过JNDI远程获取数据库源触发攻击者的恶意代码
Struts2原理
将用户要求按照业务逻辑执行并且返回结果
用户提交表单数据并且验证失败时后端会将用户之前提交的参数值使用OGNL表达式 %{value}进行解析然后重新填充到对应的表单数据中。
例如注册或登录页面提交失败后端一般会默认返回之前提交的数据由于后端使用 %{value} 对提交的数据执行了一次 OGNL 表达式解析所以可以直接构造 Payload 进行命令执行
Weblogic
漏洞描述
Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序客户端或者其它Weblogic Server实例之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机JVM中, 并创建T3协议通信连接, 将流量传输到Java虚拟机。T3协议在开放WebLogic控制台端口的应用上默认开启。攻击者可以通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击开放Weblogic控制台的7001端口默认会开启T3协议服务T3协议触发的Weblogic Server WLS Core Components中存在反序列化漏洞攻击者可以发送构造的恶意T3协议数据获取目标服务器权限。
远程攻击者可利用该漏洞在未授权的情况下发送攻击数据通过T3协议EJB支持远程访问且支持多种协议。这是Web Container和EJB Container的主要区别在Weblogic Server中执行反序列化操作利用RMI远程方法调用 机制的缺陷通过JRMP协议Java Remote Messaging Protocoljava远程消息交换协议达到执行任意反序列化payload的目的。
**T3协议**用于在Weblogic服务器和其他类型的Java程序之间传输信息的协议。Weblogic会跟踪连接到应用程序的每个Java虚拟机要将流量传输到Java虚拟机Weblogic会创建一个T3连接。该链接会通过消除在网络之间的多个协议来最大化效率从而使用较少的操作系统资源。用于T3连接的协议还可以最大限度减少数据包大小提高传输速度。
**RMI**远程方法调用
使用协议JRMP
T3就是对JRMP的优化。Java RMI 的基础通信协议是 JRMP 但是也支持开发其他的协议来优 化 RMI 的传输这里的 Weblogic 的 T3 协议就是其优化版本相比于JRMP协议多了一些特 性。T3协议传输过程中就是序列化和反序列化方式
**利用**将原本存在的序列化内容替换成我们payload的序列化内容在传输完成后进行反序列 化达成攻击的目的
Jboss
JBoss是一个基于J2EE的开放源代码应用服务器代码遵循LGPL许可可以在任何商业应用中免 费使用JBoss也是一个管理EJB的容器和服务器支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核 心服务不包括支持servlet/JSP的WEB容器一般与Tomcat或Jetty绑定使用。
两种利用方式第一种是利用未授权访问进入JBoss后台进行文件上传的漏洞另一种是利用Java 反序列化进行远程代码执行的漏洞
弱口令漏洞
system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle123六、webshell管理工具
菜刀
base64加密php马有eval(base64_decode ($POST[z0])),z0QGluaV9zZXQ
蚁剑
以 0x 开头的参数名ini_set(“display_errors”,“0”)
冰蝎
1、大量的 content-typeapplicationcontent-type 为 application/octet-stream。
2、默认内置 16 个 uacontent-length 请求长度payload 都为定长
3、Accept头有application/xhtmlxmlapplication/xmlapplication/signed-exchange属于弱 特征
哥斯拉
1、pass eval(base64_decode…pass加密数据
2、user-agent,accept,accept-language 固定
一共会产生3个 POST 数据包POST请求报文中参数名都是 pass 即shell的连接密码参 数值都是加密数据。
七、windowsLinux应急响应流程
检查系统账号安全查看服务器是否有弱口令
远程管理端口是否对公网开放
查看服务器是否存在可疑账号、新增账号
查看服务器是否存在隐藏账号、克隆账号
检查异常端口、进程
检查启动项、计划任务、服务
查看可疑文件和目录
查看webshell创建的时间
Windows入侵排查思路
1.检查系统账号安全 2.查看服务器是否有弱口令远程管理端口(3389)是否对公网开放使用 netstat -ano 命令、或者问服务器管理员 3.lusrmgr.msc(本地用户和本地用户组) 快捷命令查 看服务器是否存在可疑账号、新增账号如有管理员群组的Administrators里的新增账户 如有请立即禁用或删除掉 4.用 D 盾或者注册表(regedit)中查看服务器是否存在隐藏账号、克隆 账号 5.结合日志查看管理员登录时间、用户名是否存在异常使用eventvwr.msc打开“事件查 看器”导出 Windows 日志–安全利用 Log Parser 进行分析 6.检查异常端口、进程 netstat - ano检查端口连接情况是否有远程连接、可疑连接 然后使用 tasklist |findstr PID 进行定位 7. 使用快捷命令 msconfig查看是否存在命名异常的启动项目 输入regedit注册表中查看开机启动项是否正常输入gpedit.msc查看本地组策略使用services.msc检查是否有异常服务 8.检查系统相关信息 systeminfo查看系统版本以及补丁信息 查找可疑目录及文件
Linux入侵排查思路
bash的账户正常为/nologin 2.查看本机开启端口服务信息 netstat -anlutp,然后去查看每个开 启服务所产生的日志信息 var/log目录下举例如何查看mysql日志首先登录mysql然后 使用 show variables like ‘%general_log%’ 查看日志是否开启和路径信息 二、 服务入侵排查 1.使用last命令检查系统登录日志统计ip登录错误次数和登录情况 2.使用 ls -l 查看 /etc/passwd文件 的修改时间 查看是否有特权用户 查看网站开启的端口ss -anlutp 3.使用ps - elf 看UID为0的进程 查看ssh的公钥是否被修改 4.查看网站根目录/var/www下是否存在可疑 文件 5.查看计划任务 /etc/crontab 三、异常启动排查 1.ps -elf 查看进程 2.查看linux 系统服务 /etc/rc.d/init.d 3.查看用户自定义开机启动程序 /etc/rc.d/rc.local
应急响应流程
1、收集信息搜集客户信息和中毒信息备份
2、判断类型判断是否是安全事件、是何种安全事件勒索病毒、挖矿、断网、ddos等
3、深入分析日志分析、进程分析、启动项分析、样本分析
4、清理处置杀掉恶意进程、删除恶意文件、打补丁、修复文件
5、产出报告整理并输出完整的安全事件报告
windows应急
1.查看系统账号安全
查看服务器是否有弱口令、可疑账号、隐藏账号、克隆账号、远程管理端口是否对公网开放
winreventwmr.msc查看系统日志查看管理员登录时间、用户名是否存在异常
2.检查异常端口、进程
netstat -ano 检查端口连接情况是否有远程连接、可疑连接
tasklist | findstr PID根据pid定位进程
使用功能查杀工具
3.启动项检查、计划任务、服务
检查服务器是否有异常的启动项msconfig看一下启动项是否有可以的启动
检查计划任务查看计划任务属性可以发现木马文件的路径
见擦汗服务自启动services.msc注意服务状态和启动类型检查是否有异常服务
4.检查系统相关信息
查看系统版本以及补丁信息 systeminfo
查找可以目录及文件 是否有新建用户目录 分析最近打开分析可疑文件 %UserProfile%\Recent
5.自动化查杀
使用360 火绒剑 webshell后门可以使用d盾 河马等
6.日志分析
360星图日志分析工具 ELK分析平台
linux应急
1、检查用户及密码文件/etc/passwd、/etc/shadow 是否存在多余帐号主要看一下帐号后面 是否是 nologin,如果没有 nologin 就要注意
2、通过 who 命令查看当前登录用户tty 本地登陆 pts 远程登录、w 命令查看系统信息想 知道某一时刻用户的行为、uptime查看登陆多久、多少用户负载
3、修改/etc/profile的文件在尾部添加相应显示间、日期、ip、命令脚本代码这样输入 history命令就会详细显示攻击者 ip、时间历史命令等
4、用 netstat -antlp|more命令分析可疑端口、IP、PID查看下 pid 所对应的进程文件路径 运行ls -l /proc/ P I D / e x e 或 f i l e / p r o c / PID/exe 或 file /proc/ PID/exe或file/proc/PID/exe$PID 为对应的pid 号
5、使用ps命令分析进程 ps aux | grep pid
6、使用 vi /etc/inittab 查看系统当前运行级别通过运行级别找到/etc/rc.d/rc[0~6].d对应目录 是否存在可疑文件
7、看一下crontab定时任务是否存在可疑启用脚本
8、使用chkconfig --list 查看是否存在可疑服务
9、通过grep awk命令分析/var/log/secure安全日志里面是否存在攻击痕迹
10、chkrootkit、rkhunter、Clamav 病毒后门查杀工具对 Linux 系统文件查杀
11、如果有 Web 站点可通过 D 盾、河马查杀工具进行查杀或者手工对代码按脚本木马关键 字、关键涵数evel、system、shell_exec、exec、passthru system、popen进行查杀 Webshell 后门。
八、windows事件ID
事件ID说明4624登录成功4625登录失败4634注销成功4647用户启动的注销4672使用超级用户如管理员进行登录4720创建用户
九、sql注入
如何判断是攻击还是误报
第一时间去判断内网还是外网内网大部分都是172 192 10 如果是内网对内网大概率是真实业务很少见打到内网查询字段内容响应包是否是正常业务看状态码判断攻击成功
如果是外网先去看状态码 如果是200微步平台看是否是恶意ip 先上报封禁攻击报文如果是正常业务 那我们对这个业务监控如果是sql语句攻击看里面报文的攻击语句比如常见sleep函数延时注入extractvalue、updatexml函数 的报错注入把攻击行为给客服反馈过去
十、ssrf打redis
ssrf扫描内网,端口6379是redis,然后redis未授权漏洞利用
利用dict协议可以扫描开放的端口探测指纹信息可以攻击redis服务 dict://ip:port/info 截获get请求包和post请求包再构造成符合gopher协议的请求从而模拟redis通信
更改redis备份路径为ssh公钥存放目录一般默认为/root/.ssh并设置上传公钥的备份文件名字 为authorized_keys,将一开始生成的SSH公钥写入authorized_keys文件中。
十一、PHP一句话木马
?php eval($_GET[cmd]); ?
?php eval($_POST[cmd]); ?
?php eval($_REQUEST[cmd]); ?
script languagephpeval($_GET[cmd]);/script
GIF89a? script languagephpeval($_REQUEST[mima])/script十二、序列化反序列化及其流量特征
**序列化**对象转换为字符串
**反序列化**字符串转换为对象
流量特征
**shiro反序列化**查看cookie中rememberme字段恶意命令要从这里传入。判断是否有漏洞 查看返回包set cookieremembermedeleteme验证失败返回的标识符。
**fastjson反序列化**请求报文中查找json格式的数据重点看有无rmi或者出网的一些行为
**st2-045**请求头中的Content-Type字段
十三、常见的设备,出现误报怎么办
奇安信天眼,设备类型:全流量,天眼、EDR、全流量告警、态势感知、APT、蜜罐设备,微步tdp,青藤云HIDS,明御安全网关先去查看设备的完整流量日志等信息确认是否为误报误报那就是规则问题上报处置提供规则优化建议
十四、wireshark指令
http contains “关键字”
http.response.code 200
http.request.method POST
tcp.prot 80
ip.addr 10.1.1.1ip.srcip.dst
十五、中挖矿病毒怎么解决
首先ps -aux查看进程分析
然后top 分析算力挖矿用到的算力比较多对流量进行过滤含有矿池服务器的流量就是挖矿病毒
最后kill进程rm掉程序
删不掉这么办
先下线然后检查挖矿是否有在内网传播及时下线所有被传播的主机、上机排查攻击痕迹、一般 可以从cpu占用情况可以进程、开放端口、计划任务、服务项几个方面排查
将样本上传到在线分析平台清除挖矿主程序主要就是双向封禁矿池地址、删除计划任务自启 动、删服务结束恶意进程、删病毒
**删不掉**确认一下一下是因为程序在使用还是权限不够更具具体情况采取措施 直接降权降权到没有执行权限
十六、拿到webshell不出网情况下怎么办
reg上传去正向连接。探测出网协议如dnsicmp
十七、怎么排查java内存马
直接利用内存马检测工具去找github也有很多检测脚本手工的话可以分析web日志filter或者listener类型的内存马会有大量路径相同参数不同的url请求或者页面不存在但是返回200的请求分析web.xml文件内存马的Filter是动态注册的web.xml是没有配置的也有可能是中间件漏洞通过代码执行加载内存马这就可以去排查中间件的错误日志像哥斯拉和冰蝎的内存马也会有跟webshell相似的特征分析特殊的classloader加载攻击者喜欢利用TemplatesImpl和bcel加载内存马因为内存马是驻留在内存里的本地无class文件通过检测Filter对应的ClassLoader目录下是否存在class文件来判断也可以把内存中所有的Filter的class dump出来使用工具分析是否存在恶意代码
十八、蜜罐原理
**创建虚拟环境**在网络中创建一个看似易受攻击的虚拟环境该环境模拟真实系统的一部分或全 部功能包括应用程序、服务和操作系统。
**引诱攻击者**通过暴露蜜罐的存在例如通过公开可访问的IP地址或虚假的网站吸引攻击者主 动尝试入侵、扫描或攻击蜜罐系统。
**监测和记录**一旦攻击者进入蜜罐系统蜜罐会记录攻击者的行为、攻击技术和使用的工具。 这些信息对于理解攻击者的策略和行为非常有价值。
**分析和响应**通过分析记录的数据研究人员可以识别攻击者的行为模式、漏洞利用方法和漏洞 的目标。
这些信息可以用于改进真实系统的安全性及时发现和应对新的威胁。 蜜罐的优势在于能够提供高质量的攻击数据和情报帮助安全团队更好地了解攻击者的行为模式和目的加强防御措施并及时应对威胁。
然而蜜罐也需要专业人员来设计、部署和管理以确保其安全性和有效性并避免对真实系统 造成潜在的风险。
十九、内存马查杀原理
java内存马原理
通过在Java虚拟机JVM中运行的恶意代码实现对被攻击者系统的远程控制。其原理是通过在Java虚拟机中注入特定的Java类、变量或方法等Java对象然后在Java虚拟机中运行这些代码实现对受害者机器的远程控制
java内存马排查
利用Java Agent技术遍历所有已经加载到内存中的class。 先判断是否是内存马是则进入内存查杀。
识别
1filter名字很特别
2filter优先级是第一位
3对比web.xml中没有filter配置
4特殊classloader加载
5对应的classloader路径下没有class文件
6Filter的doFilter方法中 有恶意代码
清除
1、清除内存马中的Filter的恶意代码2、 模拟中间件注销Filter
二十、常见的危险PHP函数总结
eval() — 把字符串作为PHP代码执行
语法eval( string $code ) : mixed
把字符串 code 作为PHP代码执行。
这个函数一般都是攻击者用的没什么人会拿这个放到自己的源码里面
PHP官方也给出了警告 assert() — 检查一个断言是否为 false 把字符串作为PHP代码执行
语法
PHP 5
assert( mixed $assertion , string $description ? ) : bool
PHP 7
assert( mixed $assertion , Throwable $exception ? ) : bool
assert()会检查指定的 assertion 并在结果为 false 时采取适当的行动把字符串 $assertion 作为PHP代码执行
preg_replace — 执行一个正则表达式的搜索和替换
语法
preg_replace( mixed $pattern , mixed $replacement , mixed $subject , int KaTeX parse error: Expected EOF, got at position 18: …mit -1 , int ̲count ? ) : mixed
搜索 subject 中匹配 pattern 的部分以 replacement 进行替换。
/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码
preg_replace(/test/e,$_GET[h],jutst test);如果我们提交 ?hphpinfo()/e就会将h参数当做PHP代码phpinfo()将会被执行。
引发命令执行的危险函数
system — 执行外部程序并且显示输出
说明
system( string $command , int $return_var ? ) : string
同 C 版本的 system()函数一样 本函数执行 command 参数所指定的命令 并且输出执行结果。
如果 PHP 运行在服务器模块中 system()函数还会尝试在每行输出完毕之后 自动刷新 web服务器的输出缓存。
如果要获取一个命令未经任何处理的 原始输出请使用 passthru()函数。
举个例子
?php system(whoami);?exec — 执行一个外部程序
exec()执行 command 参数所指定的命令
举个例子
?php echo exec(whoami);?shell_exec — 通过 shell 环境执行命令并且将完整的输出以字 符串的方式返回。
?php echo shell_exec(whoami);?passthru — 执行外部程序并且显示原始输出
?php passthru(whoami);?引发文件包含的危险函数
主要作用为包含并运行指定文件。
include()代码执行到此函数时才将文件包含进来发⽣错误时只警告并继续执行include_once()功能和前者一样区别在于调用同一文件时程序只调用一次require()立即调用此函数包含文件发⽣错误时会输出错误信息 并⽴即终⽌程序require_once()功能和前者一样区别在于调用同一文件时程序只调用一次
include $file;
在变量 $file 可控的情况下我们就可以包含任意文件从而达到 getshell 的目的。
另外在不同的配置环境下可以包含不同的文件。
因此又分为远程文件包含和本地文件包含。
包含函数也能够读取任意文件内容这就需要用到【支持的协议和封装协议】和【过滤器】。
例如利用php流filter读取任意文件
include($_GET[‘file’]);
?filephp://filter/convert.base64-encode/resourceindex.php
解释?filephp:// 协议 / 过滤器 / 文件
引发文件操作的危险函数
copy
file_get_contents()
highlight_file()
fopen()
read file()
fread()
fgetss()
fgets()
parse_ini_file()
show_source()
file()
任意文件读取、写入、删除往往是上面几个函数受到了控制当然还有其他的函数。 不同的函数在不同的场景有不同的作用和不同的利用手法。
读取可以读取配置等文件拿到key
写入可以写入shell代码相关的内容
删除可以删除.lock文件而可以重新安装覆盖
更多思路请自行挖掘测试
引发信息泄露的危险函数
phpinfo — 输出关于 PHP 配置的信息
getenv — 获取一个环境变量的值
get_current_user — 获取当前 PHP 脚本所有者名称
getlastmod — 获取页面最后修改的时间
ini_get — 获取一个配置选项的值
glob — 寻找与模式匹配的文件路径
引发XEE的危险函数
__construct()
addAttribute()
addChild()
asXML()
attributes()
children()
getDocNamespaces()
getName()
getNamespaces()
registerXPathNamespace()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
xpath()
引发反序列化的危险函数
序列化函数serialize()
反序列化函数unserialize()
魔术函数
__construc()
__destruct()
__call()
__callStatic()
__get()
__set()
__isset()
__unset()
__sleep()
__wakeup()
__toString()
__invoke()
__set_state()
__clone()
__debuginfo()
二十一、Java危险函数
Java命令执行的函数
Runtime类
Runtime类是私有的 类的对象无法通过这种方式注册 Runtime r new Runtime() ;
只能通过静态方法getRuntime获取 Runtime r Runtime.getRuntime()
ProcessBuilder类
这种复现本质意义不大重点是记一下敏感函数
rce2Servlet.java
ProcessImpl类ProcessImpl类通常是为ProcessBuilder.start()创建新进 程服务的不能直接去调用。
看到ProcessImpl类构造器私有所以不能直接对其进行实例化为了演示可以用反射进行调 用。
在获取到一个静态方法后必须用setAccessible修改它的作用域否则不能调用。
二十二、如何快速判定xss类型
存储型xss
发送⼀次带XSS代码的请求以后这个⻚⾯的返回包⾥都会有XSS代码
反射型xss
发送⼀次带XSS代码的请求只能在当前返回的数据包中发现XSS代码
dom型xss
发送⼀次带XSS代码的请求在返回包⾥压根⼉就找不到XSS代码的影⼦
二十三、csrf、ssrf和重放攻击有什么区别
CSRF是跨站请求伪造攻击由客户端发起
SSRF是服务器端请求伪造由服务器发起
重放攻击是将截获的数据包进⾏重放达到身份认证等⽬的
常见对应端口及服务 设备
安全设备 奇安信天眼 设备类型:全流量 大致使用方法 天眼首页截图:
左边监测控制台,打开,有告警信息:
分析时觉得IP有问题可以在攻击IP中搜索
打开告警列表(奇安信网神?):
点击详情,显示如下内容:
微步tdp/tip TDP的 主页面:
主要点击外部攻击的外部攻击项
告警主机项上面可以查询IP
内网渗透分析,被攻陷后可以看网络拓扑:
优势项自动识别一些恶意IP即答tdp威胁情报发现有利于溯源分析
青藤云HIDS 设备类型:全流量 大致使用方法 主页面主机资产安全台账功能将可疑IP放到里面点击主机详情看是不是内部IP
点击入侵事件,查看告警,点击告警的漏洞名称,可以跳到类似于天眼的详情信息页面
可以查日志筛选IP/域名/进程进行查询
优势项:可以直接发现暴力破解,不需要人工添加规则
明御安全网关 总结优势 HIDS对全网信息捕捉
微步:
攻击发现会显示攻击者画像 方便溯源分析 威胁情报发现发现恶意IP 亚信ei拦截的恶意文件会自动在an中运行检测生成报告
ddei邮件网关过滤垃圾邮件对恶意文件隔离 ddan沙箱微步云沙箱检测恶意文件分析恶意样本收集攻击信息生成行为报告