SQL注入攻击分类及提交方式

攻击分类及提交方式

注入前的准备与注入漏洞检测

	在进行 SQL 注入攻击时,需要利用到从服务器返回的各种出错信息,默认设置是不显示详细错误返回信息的,因此首先要取消 IE 浏览器返回信息设置,以便查看到注入攻击时返回的数据库信息
		将浏览器设置选项高级 显示取消友好 HTTP 错误信息

手工检测 SQL 注入点

最常用的 SQL 注入点判断方法,是在网站中寻找如下形式的网页链接。

		http://www.*****.com/***.asp?id=xx (ASP 注入)
		或者下面的链接。
		http://www.*****.com/***.php?id=xx (php 注入)
		http://www.*****.com/***.jsp?id=xx (jsp 注入)
		http://www.*****.com/***.aspx?id=xx (aspx 注入)
		http://www.*****.com/index.asp?id=8&page=99 (有多个参数)
			(注:注入的时候确认是 id 参数还page 参数,工具默认只对后面 page 参数注入,所以要对工具进行配置或者手工调换)
		http://www.*****.com/index/new/id/8 伪静态
		http://www. *****.com/index/new/php-8.html 伪静态
	其中的“**”可能是数字,也有可能是字符串
		分别被称为整数类型数据和字符型数据

如何判断某个网页链接是否存在 SQL 注入漏洞呢?通常有两种检测方法。

		1.“单引号”法
			第一种检测 SQL 注入漏洞是否存在的方法是“单引号”法。方法很简单,直接在浏览器地址栏中的网址链接后加上一个单引号,如果页面不能正常显示,浏览器返回一些异常信息, 则说明该链接可能存在注入漏洞。 
		2. 1=1 和 1=2 法
			很多时候检测提交包含引号的链接时,会提示非法字符,或者直接不返回任何信息,但 这并不等于不存在 SQL 注入漏洞。此时可使用经典的“1=1 和 1=2”法进行检测。方法很简 单,就是直接在链接地址后分别加上 and 1=1 和 and 1=2 进行提交,如果返回不同的页面, 那么说明存在 SQL 注入漏洞。

注入分类

数字型注入

		注入参数为数字

字符型注入

		注意单引号闭合

搜索型注入

		%xxx%' or 1=1 #%
			SQL 的模糊查询命令 select * from 表名 where 字段名 like ‘%(对应值)%’;

XX型注入

		XX') or 1=1#
			单引号闭合
				由于 SQL 语句拼接方式不同

注入提交方式

	ASP
		request (全部接受)
		request.querystring (接受 get)
		request.form (接受 post)
		request.cookie(接受 cookie) 
	PHP:
		$_REQUEST(全部接受)
		$_GET(接受get)
		$_POST (接受 post)
		$_COOKIE(接受 cookie) 

三种方式注入方法

		post
			可通过安装火狐浏览器插件(hackbar)或 Burp 工具来完成
		get
			一般直接通过浏览器地址栏提交
		cookie
			一般通 Burp 工具来完成,修改cookie,进行一个注入

注意

		这是由程序代码自身决定的
			一般中间件 waf 防火墙 对get防护最高  其次是post 最后是cookie  
				很多人在写注入防御代码时,写了post get的,但是没有过滤cookie的
发布了63 篇原创文章 · 获赞 8 · 访问量 2513

猜你喜欢

转载自blog.csdn.net/weixin_43079958/article/details/105257583