解题思路

拿到题目的时候,只有一个登录界面



拿到登录界面,而且还伴随着有注册界面,联想到SQL的二次注入漏洞

尝试注册admin'#,并使用admin登录,发现登录失败,说明可能不存在SQL二次注入

注册之后,登录进去,在check.php页面查看源代码的时候发现有一个关于admin的注释:



可能是编码不一致的问题,打开Notepad++,先选择使用ANSI编码,粘贴之后,再使用UTF-8编码,得到内容:



可能关键的信息在admin的电话,看来必须要知道admin的电话才行。

当前页面很少,想着如果可以看源代码是不是有解题思路,于是使用dirsearch扫描了一下,希望能有个源代码文件:



在访问了所有的文件后,事与愿违,并没有源代码文件,但是db.php仍然暗示了需要使用SQL注入

通过一番寻找,由于页面暗示了电话问题,所以我们猜想可能注入点在电话中

为什么?且看图

空色框内的变量2显然就是查询数据库之后的结果,所以这个2很可能就是回显点

而在整个靶场中,唯一能够让我们控制电话的只有register.php界面。

再次打开register.php界面,进行html的代码审计(因为得不到php源代码):



显然必须要查看form表单



这很正常,在注册界面里面,设定电话号码的长度是11

但是,对于hack来说,长度为11显然限制了我们的手动直接在页面注入,这就是此地无银三百两的细节

好,我们输入SQL注入语句,报错,原因是,它必须要数字:



所以系统会对非数字电话进行过滤

办法是转换成二进制或者十六进制(二进制经过测试不能成功,且看16进制)。



将SQL注入语句转换成16进制,记住,一定要在前面加0x

发送成功,然后我们登录查看一下

我们刚刚输入的内容在回显栏里面,点击check

相比于刚才,多了一条语句:There only 1 people use the same phone as you

同时也证明了两点,只有一列可以回显,而且是数字型注入。

于是之后就可以构造查询语句:









最后再查一下phone,就可以找到flag了

此外,在查询的时候,遇到错误会统一报错为db,error

这样下来,报错注入就行不通了,即不能用xmlupdate

总结

做这道题遇到的障碍以及解决方法

障碍 方法
不能及时判断SQL注入点 在找到注释提示admin的电话号码的时候,以及在页面告诉说有多少人和你是同一电话号码的时候,在电话号码只能输入11位的时候,在电话号码过滤非数字的时候,都在暗示,这是一个SQL注入点
不能及时绕过非数字过滤 绕过非数字检测过滤的方法就是将字符串转换为数字,最常见的就是二进制和十六进制
不能及时判断SQL数据库结构 从小到大,从第一列开始判断,即select 1开始,随后增减列数,一定要在后面添加注释
不能准确使用SQL语句注入 如果报错结果为同一特定文字,那么报错注入大部分情况下没有用

2017第二届广东省强网杯线上赛:WEB phone number (SQL注入)的更多相关文章

  1. 2017年第二届广东省强网杯线上赛WEB:Musee de X writeup(模板注入漏洞)

    目录 解题思路 总结 解题思路 拿到手上,有四个页面 首先按照题目要求执行,尝试注册一个名为admin的账户 这种情况,路径都给出来了,很可能就是目录遍历或者文件上传了 回到初始界面,点击链接here ...

  2. 2017第二届广东省强网杯线上赛--Nonstandard

    测试文件:http://static2.ichunqiu.com/icq/resources/fileupload/CTF/echunqiu/qwb/Nonstandard_26195e1832795 ...

  3. 2019 第三届强网杯线上赛部分web复现

    0x00前言 周末打了强网杯,队伍只做得出来6道签到题,web有三道我仔细研究了但是没有最终做出来,赛后有在群里看到其他师傅提供了writeup和环境复现的docker环境,于是跟着学习一波并记录下来 ...

  4. 庞果英雄会第二届在线编程大赛·线上初赛:AB数

    题目链接 给定两个正整数a,b,分别定义两个集合L和R, 集合L:即把1~a,1~b中整数乘积的集合定义为L = {x * y | x,y是整数且1 <= x <=a , 1 <= ...

  5. RobotCraft 2017 第二届国际机器人学暑期学校 2nd Edition of International Robotics Summer School

    原文网址:http://www.ros.org/news/2017/02/2nd-edition-of-international-robotics-summer-school-robotcraft- ...

  6. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  7. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F题 Clever King(最小割)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  8. “玲珑杯”线上赛 Round #17 河南专场

    闲来无事呆在寝室打打题,没有想到还有中奖这种操作,超开心的 玲珑杯”线上赛 Round #17 河南专场 Start Time:2017-06-24 12:00:00 End Time:2017-06 ...

  9. 2021广东省强网杯WriteUp

    个人赛 网络诈骗 参考 https://github.com/Heyxk/notes/issues/1 先把EnMicroMsg.db提出来 CompatibleInfo.cfg是0kb,用第一种方法 ...

随机推荐

  1. DLL-使用DLL

    动态链接库的使用 fangyukuan 2010.6.21 应用程序可以调用的DLL函数,在DLL中叫做导出函数,而在应用程序中叫做导入函数.应用程序中的导入函数与DLL文件中的导出函数进行链接有两种 ...

  2. 踩坑记录--接口调用,传参DataTable报错

    问题描述 服务端提供接口,接口参数包含DataTable类型,客户端调用显示请求报错,Postman调用显示Could not get response 解决 原因 接口实现基于wcf,而wcf参数类 ...

  3. 阿里云rds分区

    SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'xw_user_appl ...

  4. uwp 的锁屏功能

    [UWP开发]自定义锁屏&桌面壁纸 mtobeiyf关注 2015.11.01 00:16:55字数 394阅读 1,249 调用通用的API来设置桌面壁纸,可以实现很多有趣的功能.在Wind ...

  5. linux 常用命令(三)——(centos7)MySql 5.7添加用户、删除用户与授权

    一.创建用户:以root用户登录到数据库进行用户创建 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例如: CREATE US ...

  6. Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记

    GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...

  7. shiro登录源码

    //1.获取SecurityManager工厂,此处使用Ini配置文件初始化SecurityManager Factory<org.apache.shiro.mgt.SecurityManage ...

  8. x和y为正整数变量,求满足 x+y | xy 的通解。

    x和y为正整数变量,求满足 x+y | xy 的通解. 解:由题设可知存在正整数t满足t(x+y)=xy. 设m=(x,y),则存在正整数u和v满足: x=mu, y=mv, (u,v)=1. 于是有 ...

  9. 分数化循环小数C++实现

    引言 前一阵做了一个有理数四则混合运算的程序(详见:用C++实现的有理数(分数)四则混合运算计算器),以分数形式呈现运算结果.这次添加以循环小数形式呈现运算结果的功能.例如: Please input ...

  10. grpc服务发现与负载均衡

    前言 在后台服务开发中,高可用性是构建中核心且重要的一环.服务发现(Service discovery)和负载均衡(Load Balance)一直都是我关注的话题.今天来谈一下我在实际中是如何理解及落 ...