SQL注入过程
来源:互联网 发布:黑莓9900 软件 编辑:程序博客网 时间:2024/06/08 09:03
适用范围:
1. 如果一个系统是通过
SELECT * FROM accounts WHERE username='admin' and password = 'password'这种显式的SQL来进行登陆校验,也就是执行这个SQL语句,如果数据库中存在用户名为admin, password为password的用户,就登陆成功,否则就登陆失败。2. 系统没有对用户输入进行全面的过滤3. 系统后台使用的是MYSQL数据库(SQL)4. 系统中存在一个user name为admin的用户攻击原理:(一)
利用MYSQL的注释功能,也就是"/*", mysql执行SQL脚本时,如果遇到/*标示符,就会把之以后的SQL当做注释而不会执行,(password代表的是变量,是用户输入的字符,SQL注释是"--")
正常情况下用户在用户名框内输入"admin",在password框内输入"password", 后台执行的SQL语句就为SELECT * FROM accounts WHERE username='admin' and password = 'password'但是如果在用户名框内输入"admin' AND 1=1 /*", 在密码框内输入任意字符串,那么后台执行的SQL就为SELECT * FROM accounts WHERE username='admin' AND 1=1 /* and password = 'aa', 可以看到数据库实际执行的SQL为SELECT * FROM accounts WHERE username='admin' AND 1=1, 而/*后面的SQL就被当做注释而忽略掉了,登陆成功!
(二)
利用or功能,或上一个真的返回值也为真。上面的and也可以改为or
也就是 select * from accounts where username='admin' and password='password' or 'a'='a'
用户只需在密码框内输入" a' or 'a'='a "即可。
防止SQL注入的方法:
帐号中或者密码中含有 ' 或者 - 或者 / 或者 * 这些特殊字符均为非法字符。
- SQL注入过程简述
- SQL注入过程
- SQL注入详细过程
- sql注入原理和过程
- 典型的 SQL 注入过程
- SQL注入原理和过程
- sql注入原理和过程
- sql注入攻击详解(二)sql注入过程详解
- sql注入攻击详解(二)sql注入过程详解
- sql注入攻击详解(二)sql注入过程详解
- sql注入攻击详解(二)sql注入过程详解
- sql注入攻击详解(二)sql注入过程详解
- 防止sql注入的存储过程
- 一个PHP的SQL注入完整过程
- SQL高级注入使用之储存过程
- SQL高级注入使用之储存过程
- Sql Server存储过程防注入攻击
- 存储过程之外:SQL注入深入防御
- Python字符串处理(版本2.7)-学习笔记
- oracle临时表
- 有关函数。。。
- linux桌面环境gnome,kde,xfce,lxde 使用比较
- mysql 学习之三 数据类型
- SQL注入过程
- HDU 4611 Balls Rearrangement (数学-思维逻辑题)
- 2013/08/25 C# WPF 学习笔记
- 蓄水池算法-如何从未知或者很大样本空间随机地取k个数
- CRM Account, Opportunity and Activity Mangement
- java web之设计模式和案例
- c语言操作符优先级(转自博客园)
- Android Bitmap和Canvas学习笔记
- Just learn how to use the JNI