手工注入笔记
第一部分基础知识
一、数据库系统
1.数据库系统分为数据库和数据库管理系统。
数据库是存放数据的地方,数据库管理系统则是管理数据库的软件。
2.数据库中数据的存储节构叫数据模型。
有四种常见的数据模型,分别是层次模型、网状模型、关系模型和面向对象模型。其中
关系数据模型是最主要的数据模型,ACCESS、MSSQL、ORACLE 等都是关系模型数据库
系统。其中以 ACCESS、MSSQL 数据库系统最为常见。
二、基本概念
1.表 : 表是一个关系数据库的基本组成元素。
<1> 表按行与列组合排列成相关信息。
① 通常行称为记录,列称为域。
② 每个域称为一个字段。
③ 每一条记录都由多个字段组成。
④ 每个字段的名字叫做字段名,每个字段的值叫估字段值。
<2> 表中的每一行即每一条记录都拥有相同的结构。
三、注入的条件
只有调用数据库的动态页面才有可有存在注入漏洞,动态页面包括 asp php jsp cgi 等。那什
么是调用数据库的页面呢?比如这样的形势: asp?id= php?id=这样的样子的都是调用数
据库的页面。"?"后面加的 id 的名字叫变量,注意这个变量是可以随便换的,"="号后面的
值名字叫参数。这个参数也是可以变的。
四、注入漏洞的原理
程序对用户提交的变量没有进行有效的过滤,就直接带入查询语句中,这样,我们就
可以提交具有数据查询功能的语句,加入到程序将要提交的信息中去,再根据服务器返回
的信息来判断数据库里的内容。
第二部分 手工注入实战演示
Tip:第一次手工注入的话用鼠标右键点击桌面上的 IE 图标,再点属性,然后再点“高级”,
然后往下拉滚动条,找到“显示友好 HTTP 错误信息”,把前面的勾去掉,再点“确定”,这样
做是为了让我们得到更多的服务器返回的信息。
判断是否存在注入漏洞
在一个调用数据库的网址后面加上分别加上 and 1=1 和 and 1=2 ,如果加入 and 1=1 返回正
常(就是和原来没有加 and 1=1 时页面样子的一样),而加入 and 1=2 返回错误(和原来没
有加 and 1=2 时页面的样子不一样),就可以证明这个页面存在注入漏洞。
比如:http://www.xxx.com/a.asp?id=7
加上 and 1=1 :http://www.xxx.com/a.asp?id=7 and 1=1
加上 and 1=2 :http://www.xxx.com/a.asp?id=7 and 1=2
字符型:http://www.xxxxxx.com/b.asp?id=ade7
加上 and 1=1 : http://www.xxxxxx.com/b.asp?id=ade7' and '1'='1
加上 and 1=2 :http://www.xxxxxx.com/b.asp?id=ade7' and '1'='2
判断数据库类型
在注入点后直接加上单引号
有的时候我们可以根据服务器报错的信息来判断它用的是什么数据库。通过这个错误