sql总结

靶场练习

第一关

1.查看源码发现name=test的test在html里面

2.所以直接在name那里添加<script>alert(123)</script>,通关

第二关

1.查看源码test和第一关一样的位置

2.直接尝试第一关方法

3.第一个test进行了html实体转义,但是第二个没有,我们只需要闭合掉双引号即可

"> <script>alert()</script> <"

第三关

1.随便输个test观察

2.先用上一关的测试一下

'> <script>alert()</script> <'

3.查看源码

4.使用onfocus事件绕过

' onfocus=javascript:alert() '

5.再点击输入框

第四关

1.先观察

2.这里是双引号闭合,<input>标签,所以我们还能继续利用onfocus事件,只不过换成双引号

" onfocus=javascript:alert() "

第五关

1.先尝试之前的能过不

2.这里on被替换成了o_n,先看一下这关的源码

3.过滤了js的标签还有onfocus事件,虽然str_replace不区分大小写,但是有小写字母转化函数,所以就不能用大小写法来绕过过滤了,只能新找一个方法进行xss注入

可以使用a href标签法,添加一个标签得闭合前面的标签

"> <a href=javascript:alert()>xxx</a> <"

4.之后点击xxx,触发a标签href属性即可

第六关

1.观察

2.先输入关键字测试看看

3.再试试大小写可以不

OnFocus <sCriPt> <a hReF=javascript:alert()>

4.发现大小写可以通过,则直接利用大小写

"> <sCript>alert()</sCript> <"

第七关

1.直接开测

"> <sCript>alert()</sCript> <"

可以看到sCript都被删了

2.可以用双拼写来完成

"> <scrscriptipt>alert()</scrscriptipt> <"

PHP参数污染SQL注入

  1. 漏洞原理

参数名区分机制:PHP允许同名参(如 id 与 i.d )共存,但接收时会将点号( . )自动转换为下划线( _ ),导致WAF可能仅检测其中一个参数,而另一个恶意参数直接进入SQL查询。

绕过关键:利用PHP对参数名的自动转换特性(如 id%20 转为 id_ ),将恶意代码通过未被过滤的参数传递。

注入技巧:使用注释符( -- )替代空格绕过关键字过滤。通过报错注入或联合查询逐步获取数据库信息(库名→表名→字段名)。

  1. 复现与调试

攻击链构建:

构造双参数(如 id=1&i.d=union select 1,2,3 ),使 i.d 绕过过滤, id 被拼接进SQL语句。

利用 _REQUEST 与 _SERVER 接收参数的差异(如 I.D 未被转换而 I_D 被转换),定位未过滤的数据入口。

调试验证:通过断点追踪参数传递路径,确认恶意参数是否进入SQL查询。

宽字节注入

  1. 产生条件

数据库使用GBK等宽字节编码,而PHP层使用UTF-8处理时,转义符( \`,编码为 %5C`)可能被宽字符"吃掉"。

典型场景:输入 %df%27 时, %df%5C 组合成汉字"運",单引号( %27 )未被转义,破坏SQL语句闭合。

  1. 利用与防御

利用方式:构造特定编码(如 %df%27 )使转义符失效,恢复单引号的注入能力。

现状:此类漏洞在2016年后较少见,因现代框架已规范编码统一(如全面采用UTF-8)。

ThinkPHP框架SQL注入漏洞

  1. 5.0.15版本漏洞

触发点: update 或 insert 操作中,参数为数组且包含 inc / dec 键(如 username0=inc&username1=update )。

漏洞成因:框架未对数组键值严格过滤,恶意代码通过 inc 操作拼接进SQL语句(如 username=username+1 )。

修复方式:官方补丁强制校验字段名与值的匹配关系,避免非法拼接。

  1. 5.1.6版本漏洞

触发点: update 方法中通过 pump 参数控制 default 表达式,使SQL片段拼接进查询。

漏洞链:

用户传入 pump 参数 → 进入 default 表达式处理 → 拼接可控字符串至UPDATE语句。

修复方式:删除 default 表达式的危险拼接逻辑。

  1. 代码追踪与调试方法

关键路径:通过调试工具定位 build 方法(SQL构造核心),追踪数据流从Request到Query的执行路径。

补丁分析:对比Git提交记录(5.0.15→5.0.16),分析 build 模块的修改点。

注意点:部分漏洞(如 exp 注入)因框架层自动过滤(如Request类添加空格)未被修复,需结合业务场景评估风险。

相关推荐
星恒讯工业路由器12 小时前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势
星夜夏空9914 小时前
网络编程(1)
服务器·网络
上海云盾-小余15 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
数据知道17 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
王莎莎-MinerU17 小时前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
Chloeis Syntax18 小时前
JAVAEE初阶 --- 构造HTTP请求
网络·网络协议·http·postman
砚凝霜18 小时前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
rcms1527026921818 小时前
NIKON 4S019-394 接口模块
网络
某不知名網友19 小时前
Linux Socket 编程完整讲解
网络
ICT系统集成阿祥19 小时前
不用复杂命令,快速定位二层 / 三层网络故障
网络·网络排查·二层故障·三层故障