XCTF两道web题目的writeup
时间:2022-07-26
本文章向大家介绍XCTF两道web题目的writeup,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
只会web正好又是php的审计题目,于是就把两道题都做了。大牛们都忙着破各种路由器,破各种设备去了,我也侥幸得了个第一:
第一题,没怎么截图,查看代码如下:
主要是考mysql的一个trick。就是查询出来的row['id']和id的区别。这么说可能有点不明白,我们用一下代码fuzz一下mysql:
<?php
mysql_connect("localhost","root","root");
mysql_select_db ("test");
mysql_query("set names utf8");
for($i = 0 ; $i < 256 ; $i++){
$c = chr($i);
$name = mysql_real_escape_string('hehe' . $c);
$sql = "SELECT * FROM `name` WHERE `name` = '{$name}'";
$row = mysql_fetch_array(mysql_query($sql));
if ($row['name'] == 'hehe') {
echo "{$c} <br/>";
}
}
如果在name后面加上一个字符,在mysql里查询,如果查到的和不加这个字符查出来的行相同,则输出。
得到了如下结果:
我们随便挑一个跟在adog后面提交就能得到flag了。如下:
第二题,访问pwnme.php得到如下提示:
很快就明白了是要说明在php里===
和==
的意义不同。我记得之前一个php的trick,我猜这里的代码是这样:strcmp($_POST[password], 'xxxx')==0
。看一下php的strcmp文档就能知道:
所以传一个password[]=xxx
即可得到如下页面:
访问可得到一段源码,yeah碰上我最爱的审计题了:
源码其实很简单,就是写入一个webshell,但文件名是跟当前秒数有关,所以大部分人想到要跑一下文件名。 当然,我这个人比较懒,能不能想个方法,不要跑这该死的文件名。
这道题没有过滤/和../,我可以直接做跳转,将时间作为目录名,再用../跳转到上个目录,这样我的文件就不带时间前缀了。 当然还要让php不出错,试了几次,数据包如下即可:
这样我的shell就为:http://106.120.92.162:5000/backup/".eval($_REQUEST[a]).php
不需要跑用户名。拿到shell了就读flag即可。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 体验spring-boot-devtools热部署,流畅且不失强大
- 【每周一库】 simsearch - a simple and lightweight fuzzy search engine
- 手把手教你实现xxl-job分布式任务调度平台搭建
- 直播短视频源码,动态需要用到点击图片展示预览效果的功能
- Docker 详细部署不香吗?
- 【41期】盘点那些必问的数据结构算法题之链表
- 那个男人 他带着Vue3来了~
- 小书MybatisPlus第9篇-常用字段默认值自动填充
- 【42期】盘点那些必问的数据结构算法题之二叉堆
- 小书MybatisPlus第8篇-逻辑删除实现及API细节精讲
- 小书MybatisPlus第7篇-代码生成器的原理精讲及使用方法
- 小书MybatisPlus第6篇-主键生成策略精讲
- Spring Security OAuth2之resource_id配置与验证
- 了解红黑树的起源,理解红黑树的本质
- 在java中进行日期时间比较的4种方法