SQL注入攻击基础

SQL基础

sql表示结构化查询语句,是在数据库中用来查询信息的一种编程语言。

数据库

数据库有关系型数据库,非关系型数据库。在渗透测试中,主要对关系型数据库进行测试,包括两种:Access和Mysql。因为这两种数据库是中小型企业用的最为广泛的,也是最容易找到注入点的。

常用的SQL语句

sql 复制代码
1.select version();#查询当前数据库版本
2.select user();#查询当前登录的用户
3.show databases;#显示当前数据库有哪些
4.use test;#使用test数据库
5.select database();#显示当前打开的数据库
6.show tables;#显示当前表有哪些
7.and 用法
8.exists()用法
9.order by用法
10.union用法
11.注释语句用法

渗透思路

在sql注入过程中,最重要的就是select查询语句,因为后端代码会根据用户传递过来的值去在数据库中进行查询,比如某个链接为:

++http://www.xxxx.com/test.asp?id=12++

这个链接中,前端传递id参数给后端,传递过来的值为12,构造出来的sql语句为:

sql 复制代码
select * from  test where id=12

那我们的第一步是找到某个网站的注入点,怎么才能知道这个网站他是有sql语句执行的了?

这里就会用到 and语法,利用语句(如下)进行注入点尝试,如果执行成功,表示此网站可以进行sql注入。

sql 复制代码
and 1=1

现在,我们已经知道这个网站有sql注入漏洞了,我们的最终目的是找到这个网站后台的管理员账号与密码,那怎么才能找到了?

思路为:猜管理员账号密码放在什么表里,表叫什么名字?知道表的名字后,再猜测字段,再把账号密码爆破出来。

按照思路中提到的,首先要猜一下管理员账号密码放在什么表里,这里需要用到exists()函数

sql 复制代码
select * from test where id=12 and exists(select * from admin)

通过exists()判断admin数据库是否存在,如果页面显示正常,表示admin数据库确实存在;如果返回错误,则表示数据库不存在。这里就需要一个一个去尝试,猜测后台数据库到底是什么?可以用常见的后台数据库名称来进行测试。

知道表名后,接下来就是猜测这个表的字段有哪些?仍然要用到exists()函数

sql 复制代码
select * from test where id=12 and exists(select username,password from admin)

如果页面正常回显,表示两个字段确实存在

字段确认后,怎么才能把字段内容显示出来了?

这里就需要用到联合查询,但是联合查询有个前提:前后两个查询的列数必须相同。所以,我们得先知道第一个查询语句有多少个字段。这里,会用到order by 排序语句

sql 复制代码
#需要猜测字段数目为多少,可以用二分法,
先从大数开始,比如先猜测20,如果页面回显错误,再猜测10;
如果10回显成功,表示字段数在10至20之间。按照这个规律猜下去
select * from test where id=12 order by 10;

猜测到字段数后,就可以用union联合查询语句来构造

sql 复制代码
select * from test where id=12 union select 1,2,3,4,5 from admin

这里用数据替代admin表中的字段,这样页面就会显示出具体的数字,这也就是我们要选择的可选字段作为下一步的注入。比如页面回显了2,3数字,那我们想得到管理员账号密码只需要构造的sql语句如下:

sql 复制代码
select * from test where id=12 union select 1,username,password,4,5 from admin

这样,页面就成功回显出后台管理员账号和密码。


以上是对access数据库进行注入的一种常见思路,现在比较少见了,但是作为初学者,仍然希望能能一步一个脚印,学扎实,弄清楚背后的原理。

我是七月花,永远突破自我的e人(*^▽^*)

相关推荐
大方子1 小时前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha3 小时前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络3 小时前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd6 小时前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
世界尽头与你10 小时前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
枷锁—sha1 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
liann1191 天前
3.1_网络——基础
网络·安全·web安全·http·网络安全
ESBK20251 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
旺仔Sec1 天前
一文带你看懂免费开源 WAF 天花板!雷池 (SafeLine) 部署与实战全解析
web安全·网络安全·开源·waf
七牛云行业应用1 天前
Moltbook一夜崩盘:150万密钥泄露背后的架构“死穴”与重构实战
网络安全·postgresql·架构·高并发·七牛云