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人(*^▽^*)

相关推荐
admin and root6 小时前
「AI安全篇」实战AntiDebug自动化JS逆向加解密MCP
javascript·人工智能·网络安全·自动化·漏洞挖掘·cnvd·src赏金
泛联新安8 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
菩提小狗13 小时前
每日安全情报报告 · 2026-09-29
网络安全·漏洞·cve·安全情报·每日安全
Daorigin_com18 小时前
道本科技携手DeepSeek:以AI重塑合同全生命周期管理
前端·人工智能·科技·网络安全·数据挖掘·前端框架·传媒
白帽攻防录18 小时前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
学逆向的19 小时前
win32消息类型
windows·网络安全·mfc·api·win32
白帽攻防录21 小时前
SRC 挖洞:GitLab GraphQL 指令绕过深度复盘,CVE-2026-19478 未授权删项目怎么打穿代码托管平台
网络·网络安全·gitlab·graphql
Johny_Zhao1 天前
FreeRADIUS + 华为AC/AP + 802.1X/WPA2-Enterprise 无线认证对接部署完整指南
网络·网络安全·信息安全·ldap·radius·huawei·系统运维·centos8
锐速网络1 天前
轻量化安全建设指南:无需硬件的SaaS化勒索病毒防御方案
网络安全·云备份·主机安全·saas安全·勒索病毒防护·轻量化安全·中小企业安全
小小小小钰儿1 天前
1.5-Python网络编程
开发语言·网络·python·web安全·计算机·网络安全