SQL数字型注入代码审计

时间:2023-01-19 18:28:38

数字型注入

SQL注入攻击,简称注入攻击,是发生于应用程序与数据库层的安全漏洞. 简而言之,是在输入的字符串之中注入sql指定,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,造成数据泄露,破坏数据库等,而数字注入一般就不用考虑到引号的问题了,

sql注入好多种,奉上图表

SQL数字型注入代码审计

代码解析

通过拿到的源码,看到这里用了一个函数来过滤sql注入.

SQL数字型注入代码审计

通过观察,可以看到过滤了select, 但是如果我使用sele||ct 呢?  替换过后变成select. 我使用\' 则替换成\ 显然过滤是不严谨的.

有了过滤不严的结论后,我就可以使用全局搜素来找注入点.

SQL数字型注入代码审计

跳转到搜素到的页面代码

SQL数字型注入代码审计

看到id使用sqlwaf过滤后就被拼到了sql语句 也没有单双引号, 又因为我刚才得知sqlwaf过滤是不严谨的,由此可以判断存在数字型sql注入

构造sql语句为: select * from comment where comment_id = 1 uni||on sele||ct 1,2,3 fr||om admin  (具体字段需要使用order by 来测试 ),我这随便演示证明漏洞存在

确定过字段之后 可以利用查询原始表,数据库相关的函数来获取想要的 信息.

修复方案

针对sqlwaf函数的修复方案. 不要替换为空, 替换为sqlwaf即可.

SQL数字型注入代码审计