注入点的判断

判断一个链接是否存在注入漏洞,可以通过对其传入的参数(但不仅仅只限于参数,还有cookie注入,HTTP头注入等) 进行构造,然后对服务器返回的内容进行判断来查看是否存在注入点。

注入点的种类

1.按注入点参数的类型分类

(1)数字型注入

例如id=1这种类型,向数据库传入的是数字,参数不需要被引号括起来。

(2)字符型注入

例如name=admin这种类型,像数据库传入的是字符串,参数需要被引号括起来。

2.按照数据请求方式来分类

(1)GET注入

HTTP请求方式为get,注入点一般在get传入的参数部分,例如?id=1,id便是一个注入点。

(2)POST注入

HTTP请求方式为post,注入点一般为提交的HTML表单, 即post传入的数据内容。

(3)HTTP头注入

HTTP的请求头存在注入点,例如XFF头,cookie,Host这些都是常见的注入点。

3.按照语句的执行效果来分类

(1)报错注入

页面会返回错误信息,或者将语句的查询结果直接返回到页面(这是最常见的一种注入,一般手注就可搞定)

(2)基于布尔的盲注

盲注的意思就是你无法直接通过页面的返回内容来获取信息,页面只会返回真假,你需要对一个个字符进行测试,相对于报错注入,盲注的工作量比较庞大,一般写脚本或者用工具跑。

(3)基于时间的盲注

页面无法直接返回真假,需要构造条件语句查看时间延迟的语句是否成功执行(观察页面的返回时间的长短)来进行判断。

(4)联合查询注入

通过union来将多条语句的结果组合到一个结果中

(5)宽字节注入

宽字节注入是由编码不统一引起的,一般是在PHP+MySQL中出现

(6)堆查询注入

堆叠查询可以构造执行多条语句

(7)二次注入

将攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。

注入类型的判断

(1)数字型注入

判断步骤

1.首先在参数后加个单引号,URL:www.3333.com/text.php?id=1’ 对应的sql:select * from table where id=3’ 这时sql语句出错,程序无法正常从数据库中查询出数据,就会抛出异常;

2.在参数后加 and 1=1  www.33333.com/text.php?id=1 and 1=1 对应的sql:select * from table where id=3’ and 1=1 该语句前后都为真,语句执行正常,与原始页面无任何差异;

3.在参数后加 and 1=2  www.33333.com/text.php?id=1 and 1=2 对应的sql:select * from table where id=3’ and 1=2 该语句为假,所以无法返回结果,返回异常。

一般满足以上三点就可以认定该注入点的类型为数字型注入。

(2)字符型注入

判断步骤

1.加单引号:select * from table where name=’admin’’ 由于加单引号后变成三个单引号,则无法执行,程序会报错;

2.加 and 1=1 此时sql 语句为:select * from table where name=’admin’ and 1=1’ ,也无法进行注入,还需要通过注释符号将其绕过;(MySQL常用的注释符号有#   -- (后面还有个空格) /* */)

构造语句为:select * from table where name =’admin’ and 1=1#’ 可成功执行返回结果正确;

3.加and 1=2 此时sql语句为:select * from table where name=’admin’ and 1=2 –’则会报错。

如果满足以上三点的话,基本可以认定为字符型注入。

最新文章

  1. CentOS 6.5安装Node.js, npm
  2. [MySQL Reference Manual]15. 其他存储引擎
  3. XE7 & IOS开发之开发账号(1):开发证书、AppID、设备、开发授权profile的申请使用,附Debug真机调试演示(XCode所有版本通用,有图有真相)
  4. 配置与使用 Git与Github
  5. SAS 画折线图PROC GPLOT
  6. 根据 MySQL 状态优化 ---- 3. key_buffer_size
  7. MyEclipse编码设置
  8. 实现LoaderCallbacks接口动态循环加载网上图片并展示在手机屏幕上 ...
  9. JavaScript代码优化(下载时间和执行速度优化)
  10. 【转】android:layout_gravity和android:gravity的区别
  11. Robotium学习笔记一
  12. session marked for kill处理oracle中杀不掉的锁
  13. workerman需要的php模块posix、pcntl、sysvshm、sysvmsg缺少,怎么办
  14. HDU 1017 - A Mathematical Curiosity
  15. hdoj:2057
  16. SQL定义变量
  17. Sitecore CMS中删除项目
  18. [UWP开发] 在低版本中使用亚克力刷以及部分高版本控件
  19. NOIP2018初赛提高组复习提纲(By HGOI LJC)
  20. wp实例开发精品文章源码推荐(8.20)

热门文章

  1. Shell 脚本(五) Shell 工具 及 企业面试题
  2. Linux(二) 系统远程访问
  3. Java实现蓝桥杯突击战
  4. Android中如何使用自定义对话框
  5. Java实现图形化计算器
  6. SpringSceurity(3)---图形验证码功能实现
  7. linux下的mysql目录
  8. 如何在Vim中的查找替换
  9. logrotate 如何执行日志按照大小切分
  10. <VCC笔记> Assumption