济南建设工程交易中心网站,做网站需要要多少钱,wordpress获取页面正文,怎么打开wordpress预备知识 WAF#xff1a;WEB攻击一直是黑客攻击的主流手段#xff0c;WAF作为网站安全基础设施的标配。Web Application Firewall#xff0c;Web应用防火墙#xff0c;通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的产品。 Nginx#xff1a;Nginx 是…预备知识 WAFWEB攻击一直是黑客攻击的主流手段WAF作为网站安全基础设施的标配。Web Application FirewallWeb应用防火墙通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的产品。 NginxNginx 是一个高性能的HTTP和反向代理服务器其特点是占有内存少并发能力强。 LuaLua是一个小巧的脚本语言由标准C编写而成几乎在所有操作系统和平台上都可以编译运行。Lua脚本可以很容易的被C/C 代码调用也可以反过来调用C/C的函数这使得Lua在应用程序中可以被广泛应用。 OpenRestyNginx开发主要是以C/C模块的形式进行整体学习和开发成本偏高。如果有一种简单的语言来实现Web应用的开发那么Nginx绝对是把瑞士军刀目前市面上用的非常成熟的扩展是由章亦春将Lua和Nginx粘合的ngx_lua模块并将Nginx核心、LuaJIT、ngx_lua模块、许多有用的Lua库和常用的第三方Nginx模块组合在一起成为OpenResty。这样开发人员就可以安装OpenResty使用Lua编写脚本然后部署到Nginx Web容器中运行。从而非常轻松就能开发出高性能的Web服务。 参考资料 OpenResty官方文档 https://openresty.org/en/ 实验目的 1本实验通过搭建一个包含SQL注入漏洞的网站在无WAF的情况下模拟进行渗透测试获得flag包含英文、符号等不超过15位 2 使用自制的WAF进行防御读者可以查看、修改规则使其直观感受基于规则的WAF的工作原理和防御机制。 3 分析相关防御规则尝试使用其他方法进行WAF绕过使读者感受攻防双方的博弈过程。 实验环境 Ubuntu 64bit、IP地址10.1.1.47网络拓扑如下图Nginx作为前端反向代理监听80端口并可使用ngx_lua对流量进行过滤。后端目标web使用Apache作为Web容器并使用php构建一个简易的Web。 大致流程用户访问目标地址Nginx反向代理接受请求Ngx_lua模块将流量过滤后将请求发送给后端web后端web处理后将结果返回给NginxNginx返回给用户。说明事实上目前流行的云WAF主要也是基于反向代理通过域名解析将访问流量引入云端进行过滤之后云端访问众多需要保护的Web站点并将结果返回给用户。云WAF往往和后端众多受保护的WEB服务身处不同服务器并且后端服务一般不能直接访问。本实验为了方便读者实验和操作便将WAF和后端Web放置同一台服务器并将后端Web的默认端口80修改为8080来实现请读者知悉。 所用软件firefox、hackbar插件、python实验步骤一 首先关闭WAF的防御功能默认为关闭状态使用firefox浏览器对目标web进行查看渗透获得flag。 1. 实验环境准备 安装firefox 安装配置好openresty使用ngx_lua模块制作基于规则的WAF修改nginx配置文件配置其为后台web进行反向代理 2. 查看、修改WAF配置文件位置在/usr/local/openresty/nginx/conf/waf/config.lua关闭防御默认为关闭状态此步骤无需进行 3. 使用firefox进行渗透测试通过单引号截断sql查询语句 http://127.0.0.1/index.php?id1 and 11 %23 4. 可以利用and 12进行union注入获取注入结果回显。 http://127.0.0.1/index.php?id1 and 12 union select 1,2 %23 5. 2的位置可以回显接下来猜测表名当from flag的时候可以正常回显 http://127.0.0.1/index.php?id1 and 12 union select 1,2 from flag %23 6. 表名错误的话则查询不到数据 http://127.0.0.1/index.php?id1 and 12 union select 1,2 from flag222 %23 7. 列名类似最终的poc为http://127.0.0.1/index.php?id1 and 12 union select 1,flag from flag %23 8. 得到flag为SQLi so easy!实验步骤二 任务描述打开WAF的防御功能使用firefox浏览器对目标web进行渗透尝试 1. 开启WAF防御功能修改/usr/local/openresty/nginx/conf/waf/config.lua文件将off修改为on 2. 重新加载nginx命令为nginx -s reload,使得WAF配置修改生效 3. 使用上述成功的poc进行注入尝试发现此时的注入攻击已经被WAF拦截 4.查看WAF的过滤规则文件在/usr/local/openresty/nginx/conf/waf/rule-config/目录下的args.rule文件打开后文件内容为 5.可以看出上述注入攻击pochttp://127.0.0.1/index.php?id1 and 12 union select 1,flag from flag %23 触发了如下图的过滤规则
实验步骤三 任务描述分析WAF规则思考如何对上述防御进行绕过 1. 可以发现相关防御规则只是对某些关键词如select和from、union和select等联合使用进行规则匹配如果匹配成功则进行拦截。 2. 而上述攻击poc触发了相关的unionselect的规则http://127.0.0.1/index.php?id1 and 12 union select 1,flag from flag %23而且关键词并没有对忽略大小写因此可以尝试替换关键词的大小写进行绕过 3. 如果WAF对关键词大小写进行忽略还可以考虑使用Bool型盲注 通过substr取出第一位然后用ascii码判断可以得到第一位的ascii码为102即’f’并且没有触发任何WAF规则成功获得回显。 http://127.0.0.1/index.php?id1 Exists(Select flag from flag where ascii(substr(flag,1,1))102) %23 4. 而如果判断不对则没有回显。 5. 因此可以通过盲注脚本根据页面的回显对每一位字符进行猜测从而也可攻击成功获得flag。可直接运行python poc.py命令进行盲注。poc.py位于桌面
实验截图 poc.py如下