freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

sql显错注入——靶场操作记录
FreeBuf_351775 2021-09-28 15:39:30 147381

http://inject2.lab.aqlab.cn:81/Pass-01/index.php?id=1
存在index.php? 前几节课讲过?一般为get传参!
当然界面上也说了

————————————————开始尝试——————————————
1.判断是否存在注入

当输入id=2时页面发生变化
再继续
http://inject2.lab.aqlab.cn:81/Pass-01/index.php?id=2%20and%201=2
当加上条件and1=2时界面不显示(报错)基本确定存在注入
————————————————判断字段数——————————————
http://inject2.lab.aqlab.cn:81/Pass-01/index.php?id=2%20order%20by%204输入order by 4 之后原本显示正常的界面显示不正常!
判断当前表中字段数为3
由于接下来要使用union select 联合查询(联合查询关键在于前后字段数需要相同 )所以进行字段数判断!
————————————————判断回显点——————————————

输入·联合查询发现回显为第二三字段并且得出当前database()=’error’

再次查看所使用MySQL 版本
由于MySQL版本高于5.0 大概率有系统自带库information_schema/ tables/ columns 存在
————————————————尝试查找——————————————查询出一个table_name为user 那么我们再看看有没有其他的表
在url尾输入 limit 0,1 /1,1 /2,1 /尝试一下

发现输出为error表中的内容
原来是因为 id=1 and 1=1 并没有造成前面的数据异常,导致输出为
id =1 and 1=1 limit 1,1 的内容

改正后输出尝试得到另一个表 error_flag
————————————————尝试查找字段——————————————

发现表error_flag 中有id 字段
再次limit 尝试

得到想要内容 column_name 为Flag
————————————————尝试查找内容——————————————
得到flag
提交发现错误
再次limit
得出更多

完成第一题4.1.1-SQL注入-显错注入Rank 1

印证(注入的本质是由于用户可控制输入的内容被当作数据库代码进行执行!)

第二题

————————————————分析url——————————————-
http://inject2.lab.aqlab.cn:81/Pass-02/index.php?id=1
输入id=1/2/3 返回界面会发生变化

但是输入id=3-1界面无变化

并且输入

显示界面正常
and 1=2 永远不可能成立 为什么界面会正常

查看提示
被闭合

说输入内容确实是被单引号所闭合当成一个整体字符串来
并没有将1!=2这个执行
于是想办法破坏’’由于单引号需要两个在一起才能发挥作用
于是’ 我在次输入单引号并且破坏后面的单引号#(或者—%20+将其注释)’
————————————————开始尝试——————————————

发现界面错误了
再次尝试
将条件变为 and 1=1

他又行了
说明注释单引号起作用了
————————————————判断字段数——————————————
order by 1/2/3/4
当输入order by 4 时候界面出错
大概率说明 字段数为 3
————————————————判断回显点——————————————

由此发现回显点为第二三字段
并且得出 数据库的版本 以及 database()=‘error’
————————————————尝试查找——————————————

发现table 有user
继续使用limit 得出

得出想要的table 为error_flag

————————————————尝试查找字段——————————————

得到字段为 flag

————————————————尝试查找内容——————————————

得出flag
再次使用limit 查看是否有其他flag

得到所有flag
完成第二题4.1.2-SQL注入-显错注入Rank 2
验证(注入本质为用户输入的数据被数据库当作代码执行)

第三题

——————————————研究url——————————————

输入不同id 参数 界面信息会发生变化

输入 and 1=2 尝试

发现界面无动于衷
发现(‘2 and 1=2’)输入内容被’’和()包围

同样是输入的内容被闭合

尝试 突破闭合

发现’ 突破闭合行不通

括号突破闭合同样行不通

再次尝试

更改and 条件

突围成功
—————————————— 判断字段数————————————————

当oeder by 为4 时候
出现错误
得出字段数为三
—————————————— 判断回显点————————————————

回显为二三字段

—————————————— 尝试找出table_name————————————————

得出user表
limit
得出error_flag 表

—————————————— 尝试找出column_name————————————————

得出字段flag

—————————————— 尝试找出内容————————————————

继续limit
得出更多的flag

得到所有flag
完成第三题4.1.3-SQL注入-显错注入Rank 3
验证(注入本质为用户输入的数据被数据库当作代码执行)

第四题

————————————————分析url——————————————


貌似没有什么异常
但是
输入and1=2 无反应

发现被双引号加括号包围了

尝试突破闭合包围
基于前面经验直接”)突破闭合

突破成功
——————————————判断字段数————————————

字段数为三
——————————————判断回显点————————————

回显点在二三字段
——————————————查找表————————————

使用limit 得出其他表

得到error_flag
——————————————查找表中字段————————————

得到flag 字段

——————————————查找表中内容————————————

得到flag
使用limit 得到其他的

完成第四题

结论:and 条件是需要加上的,从而使得想要的内容不受影响
查找内容时候要细心,猜想时一次不行试多次
不要一次不行就放弃
细心特别是中英文差别!

# 渗透测试 # web安全 # 数据安全
本文为 FreeBuf_351775 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_351775 LV.4
<script>alert("hello world")</script>
  • 14 文章数
  • 3 关注者
子域名收集
2022-03-25
NMAP——进阶使用
2022-03-22
NMAP ——如何使用NMAP
2022-03-19