sql注入攻击与防范_SQL必知必会
sql注入攻击与防范_SQL必知必会
Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
,希望能够帮助你!!!。
首先什么是SQL注入攻击
SQL注入式攻击技术,一般针对基于Web平台的应用程序.造成SQL注入攻击漏洞的原因,是由于程序员在编写Web程序时,没有对浏览器端提交的参数进行严格的过滤和判断。用户可以修改构造参数sql注入攻击的工具,提交SQL查询语句,并传递至服务器端,从而获取想要的敏感信息,甚至执行危险的代码或系统命令。
SQL注入的原理
SQL注入攻击原理:程序命令和用户数据(即用户输入)之间没有做到泾渭分明。这使得攻击者有机会将程序命令当作用户输入的数据提交给Web程序,以发号施令,为所欲为(注:注入最终是数据库sql注入攻击与防范_SQL必知必会,与脚本、平台无关)。
总之一句话:sql注入产生的原因是接受相关参数未经处理直接带入数据库查询操作
SQL注入攻击的类型
1.数字型注入 2.字符型注入 3.搜索型注入
怎样手工探测注入点
1.“单引号”法:第一种检测SQL注入漏洞是否存在的方法是“单引号”法。方法很简单,直接在浏览器地址栏中的网址链接后加上一个单引号,如果页面不能正常显示,浏览器返回一些异常信息,则说明该链接可能存在注入漏洞。
2. and 1=1和1=2法
很多时候检测提交包含引号的链接时,会提示非法字符,或者直接不返回任何信息,但这并不等于不存在SQL注入漏洞。此时可使用经典的“1=1和1=2”法进行检测。方法很简单,就是直接在链接地址后分别加上and 1=1和and 1=2进行提交,如果返回不同的页面,那么说明存在SQL注入漏洞。
(布尔型)盲注
在我们的注入语句被带入数据库查询但却什么都没有返回的情况我们该怎么办?例如应用程序就会返回一个“通用的”的页面,或者重定向一个通用页面(可能为网站首页)。这时,我们之前学习的SQL注入办法就无法使用了。
盲注,即在SQL注入过程中,SQL语句执行选择后,选择的数据不能回显到前端,我们需要使用一些特殊的方法进行判断或尝试,这个过程称为盲注。
SQL盲注分为两大类:基于布尔型SQL盲注、基于时间型SQL盲注、
1.布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据 你的注入信息返回Ture跟Fales,也就没有了之前的报错信息。
2.时间盲注 界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确
SQL注入工具

推荐三款我自己经常使用的sql注入工具: 1. 2.(穿山甲) 3.havij pro(自动化注入工具)
1.极力推荐使用(还需要安装) 优点:只要你会使用就不需要掌握其他的注入工具了 缺点:的命令语句很多很难记住
这里有我常使用的一些的语句: .py -u ( -u 是get注入)
post注入 .py -r 抓包.txt(对post页面进行抓包,放在txt文件里再去跑)
指定表单注入 .py -u URL –data“=a&=a”
自动填写表单注入:.py -u URL –forms –dbs //默认情况系会自动的探测web应用后端的数据库类型:MySQL、、、 、 、、、、、DB2
注入:.py -u 注入点URL — “id=xx” –level 3(默认情况下只支持GET/POST参数的注入测试sql注入攻击的工具,但是当使用–level 参数且数值>=2的时候也会检查里面的参数,当>=3的时候将检查User-agent和。可以通过等工具获取当前的值,然后进行注入)
2.(穿山甲)这款工具前几年感觉还可以,现在确实随着waf的牛逼,这东西基本上用处不大,优点:中文页面小白专属 缺点:工具过于鸡肋
3.havij pro(自动化注入工具) 优点:工具功能强大 缺点:英文界面 还是付费的(有激活成功教程)
这是我经常使用的sql注入工具,具体用法和下载可以百度或者加我:
手工进行sql注入
一般如果对方网站有waf拦截的话基本上是使用不了工具的,这是我们就要手工注入,上面已经提到了sql注入点一定是在与数据库有交互的地方,可以再这些网站参数后面加入单引号或者and 1=1 1=2 来进行查看返回的报错信息从而去判断注入点
探测出sql注入点后,利用order by猜解字段数目语句查询:
order by 1
order by 2
…
order by n-1
order by n

如果n-1时返回正常,n时返回错误,那么说明字段数目为n
得到字段长度后,就可利用union 查询获得字段内容了。
and 1=2 union , 2, 3…., n from 表名
执行上面的查询时,在页面中会返回数字,修改查询语句中的数字为字段名,例如提交如下代码。
and 1=2 union , 字段1, 字段2…., n from 表名
在页面中就会返回字段内容sql注入攻击的工具,不必一个一个进行猜解了
实例语句::901/.asp?id=14and 1=2 union 1,,,4,5,6,7 from
在页面返回信息中,立即获得了和字段的值(图16)sql注入攻击与防范_SQL必知必会,比前面的方法快速高效多了
得到帐号密码后去后台登陆,从而上传,
SQL注入防御的方法
网络层面:1.通过WAF设备启用防SQL 注入策略(或类似防护系统)2.云端防护(360网站卫士,阿里云盾等)
代码层面:1.对输入进行严格的转义和过滤(过滤原则:对用户输入的数据进行判断,用黑名单,或者白名单的方式验证,或者替换危险字符)
2.使用参数化()
原理:使用参数化查询数据库服务器不会把参数的内容当作sql指令的一部分来执行,是在数据库完成sql指令的编译后才套用参数运行
简单的说: 参数化能防注入的原因在于,语句是语句,参数是参数,参数的值并不是语句的一部分,数据库只按语句的语义跑
但是再好的防御也会被攻破,要是网站永远安全那我们渗透测试工程师岂不是失业了吗,本文只是大概讲述了sql注入的简单流程适合小白观看,大佬一般也不看这种东西,还有一些waf的绕过之类的以后在讲解,欢迎共同探讨或者咨询:
正在学习的李治龙
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 » sql注入攻击与防范_SQL必知必会
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码

