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 键(如 username[0]=inc&username[1]=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类添加空格)未被修复,需结合业务场景评估风险。

相关推荐
发光小北3 小时前
Modbus TCP 转 Profinet 主站网关如何应用?
网络·网络协议·tcp/ip
易连EDI—EasyLink6 小时前
易连EDI–EasyLink实现OCR智能数据采集
网络·人工智能·安全·汽车·ocr·edi
@insist1236 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
SmartRadio7 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
_.Switch7 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
金色光环8 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
数智化精益手记局8 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
灰子学技术10 小时前
Envoy HTTP 过滤器处理技术文档
网络·网络协议·http
Olivia0514051411 小时前
Voohu:音频变压器的屏蔽接地技术对50Hz工频噪声抑制的影响
网络·机器人·信息与通信
byoass12 小时前
智巢AI知识库深度解析:企业文档管理从大海捞针到精准狙击的进化之路
开发语言·网络·人工智能·安全·c#·云计算