Kali学习笔记41:SQL手工注入(3)
前两篇文章都是基于目标系统允许union,order by语句
并且可以读取infomation_schema元数据库
如果遇到的是安全方面做得很好的应用,进行了权限限制,那么我们有什么办法呢?
猜测当前表的列名(字段名):
' and [猜测字段名] is null --
如果结果是:Unknown column '[猜测字段名]' in 'where clause'
说明这个字段不存在
如果结果是没有反应,则证明该字段存在:
比如:' and user is null --
于是我就想到了:是否可以对字段名进行爆破,我从kali中搜索下有没有相关的字典:

我随便选用一个字典,当我查看其中内容时候发现有些是#开头的
实际中,应该把这些#开头的过滤掉,因为可能会影响结果

现在的column.txt应该就是我们需要的字典
利用Burp的Intruder:设置变量

然后加载刚才的字典:

不需要对payload编码:

然后就可以开始了:

通过观察发现,长度为4000多的返回正常的页面
进一步排序,就可以发现具体的字段名:

类似地,我们也可以猜测当前表的表名:
' and [猜测表名].user is null --
为什么是.user呢?因为上边已经成功猜测到了user字段名
如果这个表不存在,那么这个列也不会存在,于是可以猜测表名:
错误情况:

正确情况:什么都不会返回
找到字典进行爆破



成功爆破出users表
类似的思路:可以继续加入:' and [猜测数据库名].[猜测表名].user is null --
就可以猜测出当前数据库名称了
如何猜测当前数据库其他表的表名?
' and (select count(*) from [表名])>0 --

意外收获:库名直接出来了
接下来类似上边的方法,进行爆破

成功猜出guestbook表和users表
继续猜测表中的信息:
‘ or [字段名]='[猜测值]

通过上面的步骤已经成功猜到字段名user了
猜测正确是上面的结果,说明存在user为admin的用户
猜测错误的话:什么都不会返回
这种无脑猜测不太有智慧,我们可以结合其他的语句,比如:
' or user like '%a%
这一句话猜测的是:只要数据库中有user包含字符a的,全部查出来

成功,查到了两个用户
知道用户后就可以进一步猜测密码:URL编码后结果如下
'%20or%20user%3d'admin'%20and%20password%3d'5f4dcc3b5aa765d61d8327deb882cf99
(我对猜测的密码进行了MD5加密)
Kali学习笔记41:SQL手工注入(3)的更多相关文章
- CUBRID学习笔记 41 sql语法之select
cubrid的中sql查询语法 SELECT [ ] [{TO | INTO} ][FROM ] [WHERE ][GROUP BY {col_name | expr} [ASC | DESC], . ...
- CUBRID学习笔记 41 sql语法之groupby 等
cubrid的中sql查询语法groupby GROUP BY ... HAVING Clause 按dept_no分组 SELECT dept_no, avg(sales_amount) FROM ...
- Kali学习笔记42:SQL手工注入(4)
前三篇文章都是在讲发现SQL注入漏洞 如何查询得到所有的信息 那么另一条思路还未尝试过:能否修改数据? 例如这样: '; update users set user='yiqing' where us ...
- 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
SQL手工注入 靶机:metasploitable(低) 1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...
- SQL反模式学习笔记21 SQL注入
目标:编写SQL动态查询,防止SQL注入 通常所说的“SQL动态查询”是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句. 反模式:将未经验证的输入作为代码执行 当向SQL查询的字符串中插入别 ...
- 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell
SQL手工注入 1.读取文件[load_file函数] ' union SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...
- 小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法
SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询 ...
- SQL手工注入基础篇
0.前言 本篇博文是对SQL手工注入进行基础知识的讲解,更多进阶知识请参考进阶篇(咕咕),文中有误之处,还请各位师傅指出来.学习本篇之前,请先确保以及掌握了以下知识: 基本的SQL语句 HTTP的GE ...
- 【新手篇】搭建DCN漏洞靶机及简单的SQL手工注入
很多新手小白入门后发现想要学好“网安”技术,除了掌握基础理论知识,更需要经常模拟不同的漏洞环境,但是如果使用外网服务器练习,会存在一定风险,因此能够搭建一个本地的模拟环境去测试漏洞将是一个不错的方案. ...
随机推荐
- 解决exlipse下 springboot 错误:找不到或无法加载主类
简单描述:控制台出现了下图 废话不多说,直接上解决办法: 方法一:如果你很有自信,自己的pom 没问题,并且已经加载了所有依赖的jar.ok,这是eclipse的问题,window=>prefe ...
- MiniGUI 如何显示繁体字
有两种编码格式都可以显示繁体字,一种是GBK,一种是BIG5: 由于MiniGUI官方提供的字库的字体大小太小,所以只得自己去做字库,我用一个字库生成软件,分别做了一个GBK编码的字库和一个BIG5编 ...
- git 工作总计
# git 工作总计 1 首先先克隆了git地址 master 分子 (这个做一次) 以后循环做的 2:git checkout -b dev 创建了临时开发的dev 分子 3:修改dev 分子的数据 ...
- .net基础学java系列(七)赶鸭子上架看项目代码
项目用到的技术栈 序列化 com.alibaba.fastjson.JSON; https://github.com/alibaba/fastjson/wiki/Quick-Start-CN 日志 l ...
- “浅入浅出”函数防抖(debounce)与节流(throttle)
函数防抖与节流是日常开发中经常用到的技巧,也是前端面试中的常客,但是发现自己工作一年多了,要么直接复用已有的代码或工具,要么抄袭<JS高级程序设计>书中所述"函数节流" ...
- vim 使用学习操作
1 跳转 命令 作用 h 光标向左移动 l 光标向右移动 j 光标向上移动 k 光标向下移动 w 移动光标到下一个单词开头. e 移动光标到下一个单词结尾 b 移动光标到上一个单词. 0 移动光标到本 ...
- Python3-Cookbook总结 - 第三章:数字日期和时间
第三章:数字日期和时间 在Python中执行整数和浮点数的数学运算时很简单的. 尽管如此,如果你需要执行分数.数组或者是日期和时间的运算的话,就得做更多的工作了. 本章集中讨论的就是这些主题. Con ...
- Centos发布java的war包后,无法访问发布的工程
分析: 这时候,看你的开启的端口,8080,3306都能访问的话,那么就是你的地址写错了,可是,经测试,c3p0中的web地址是正确的,那么就去看linux中的tomcat的日志文件再tomcat/l ...
- 决AndroidStudio 安卓模拟器安装在D盘问题
决AndroidStudio 安卓模拟器安装在D盘问题 转 http://www.cnblogs.com/LiuDanK/articles/10106473.html 大家知道安卓的模拟器位置默认是放 ...
- Go语言初篇
Go语言初篇 目录 Go-开发环境 Go-语言基础 Go-标准库 Go-面向对象 Go-并发 Go-数据库 Go-web框架 Go语言开发文档:https://studygolang.com/pkgd ...