也是经过一通扫描和测试,没发现其他有用信息,感觉这是个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注入)的更多相关文章

  1. 第九届极客大挑战 部分WP

    CODE 和0xpoker分0day 百度 取石子游戏. https://blog.csdn.net/qq_33765907/article/details/51174524 已经说得很详细了,慢慢来 ...

  2. 第九届极客大挑战——Geek Chatroom(sql盲注)

    首先观察这个web应用的功能,可以任意留言,也可以搜索留言,当然我还用cansina扫描过网站,查看过源码,抓包查看过header等.没发现其他提示的情况下断定这就是个sql注入,可能存在的注入点呢, ...

  3. 第九届极客大挑战——怎么又是江师傅的秘密(java反序列化)

    这道题其实是考jsp和java的,我没学过jsp,java倒是有一点了解,但是刚拿到题的时候还是看不懂java代码里的内容,所以去简单学习了下jsp(jsp教程),按照教程里的步骤搭建了eclipse ...

  4. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  5. 2020极客大挑战Web题

    前言 wp是以前写的,整理一下发上来. 不是很全. 2020 极客大挑战 WEB 1.sha1碰撞 题目 图片: 思路 题目说,换一种请求方式.于是换成post.得到一给含有代码的图片 图片: 分析该 ...

  6. BUUOJ [极客大挑战 2019]Secret File

    [极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...

  7. 三叶草极客大挑战2020 部分题目Writeup

    三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...

  8. [原题复现][极客大挑战 2019]BuyFlag

    简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开 ...

  9. 极客大挑战2019 http

    极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...

随机推荐

  1. 依赖弹出框lhdaiglog的基于WebUploader批量上传图片

    初始上传界面 //链接添加弹窗 html代码段↓ var msgcontent = ""; msgcontent += '<ul class="linkAddBox ...

  2. nfs共享文件系统

    NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别的档 ...

  3. 网络流(2)——用Ford-Fullkerson算法寻找最大流

    寻找最大流 在大规模战争中,后勤补给是重中之重,为了尽最大可能满足前线的物资消耗,后勤部队必然要充分利用每条运输网,这正好可以用最大流模型解决.如何寻找一个复杂网络上的最大流呢? 直觉上的方案 一种直 ...

  4. postman---postman文件夹介绍以及批量执行用例

    我们在做测试的过程中,都会多次请求接口,都会把接口保存下来,方便下次直接请求,节省时间不用每次都重新输入,我们一起看下Postman如何保存接口会话 保存请求作用 Postman可以将各个请求组合保存 ...

  5. vue 组件之纯表格渲染--没有事件交互

    组件 名称小写==> 用-链接 02===> 属性==> empty-text="暂无数据" 当表格中没有数据 就会显示 暂无数据 <el-table-co ...

  6. 6.Java基础_Java自增自减/关系/逻辑/三元运算符

    /* 自增自减运算符 关系运算符 逻辑运算符 三元运算符 (同C++) */ public class OperatorDemo01 { public static void main(String[ ...

  7. C++中的异常处理(下)

    array.h #ifndef _ARRAY_H_ #define _ARRAY_H_ #include <stdexcept> using namespace std; template ...

  8. thinkphp的运行

    打开cmd切换到www目录下运行think E:\wamp64\www>php think run ThinkPHP Development server is started On <h ...

  9. 网络流 之 dinic 算法

    网络流指的是:网络流(network-flows)是一种类比水流的解决问题方法.(类似于水管群,有一个源点(水无限多),和一个汇点,最大流就代表这个点水管群(边集)每秒最大能送道汇点的水量) 这个怎么 ...

  10. Linux 网络通信 API详解【转载】

    TCP/IP分层模型 OSI协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的, 它分为7个层次:应用层.表示层.会话层.传输层.网络层.数据链路层及物理层. 这个7层的协议模型虽然规定得 ...