热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

i春秋做题记录web(一)

前言:时间过的真快呀,一转眼半学期就过去了( ̄m ̄);攻防世界上的题差不多刷完了(剩下的都是不会的


前言:
时间过的真快呀,一转眼半学期就过去了( ̄m ̄);攻防世界上的题差不多刷完了(剩下的都是不会的T_T),这周就来做做 i春秋的题,顺便记录下。




1、想怎么传就怎么传,就是这么任性。

题型: Web Upload
在这里插入图片描述
这题就是一个简单的文件上传题目;先用一个普通的php小马试一下:
然后发现文件是上传成功了,但是被过滤掉了
于是在网上找到另一个一句话,将php用大写绕过 修改后如下:

然后连接菜刀就能看到flag了。
在这里插入图片描述


2、出题人就告诉你这是个注入,有种别走!

题型: Web Sql
在这里插入图片描述
打开题目:
在这里插入图片描述
看到题目的url就知道要对id注入。首先试一下order by,发现错误,可能是关键字过滤。试了试/**/还是不行,改用<>发现可以了,如图:
在这里插入图片描述
测试得字段数为3,接下来就没啥好说的了,按顺序,爆库爆表爆字段
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
得到flag。


3、这个真的是爆破。

题型:Misc Web
在这里插入图片描述
打开题目,看到一段php语句:

error_reporting(0);// 关闭错误报告
session_start();//启动会话
require('./flag.php');
if(!isset($_SESSION['nums'])){//isset() — 检测变量是否设置。
$_SESSION['nums'] = 0;
$_SESSION['time'] = time();//返回当前时间的 Unix 时间戳
$_SESSION['whoami'] = 'ea';
}
if($_SESSION['time']+120 session_destroy();//session_destroy — 销毁一个会话中的全部数据
}//120s后会话结束
$value = $_REQUEST['value'];
$str_rand = range('a', 'z');//range创建一个包含从 "a" 到 "z" 之间的元素范围的数组
$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];//mt_rand() 使用 Mersenne Twister 算法返回0到25之间的随机整数。$str_rand[mt_rand(0,25)]返回"a" 到 "z"之间任意字母。$str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)]是两任意字母相连
if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){//substr(string,start,length)。===是包括变量值与类型完全相等。==只是比较两个数的值是否相等,由于substr是字符串,和数字比较的时候会强制转化成数字0,自然和0相等。
$_SESSION['nums']++;
$_SESSION['whoami'] = $str_rands;
echo $str_rands;
}
if($_SESSION['nums']>=10){//循环10次输出flag,暴力破解
echo $flag;
}
show_source(__FILE__);
?>

因为md5不能对数组进行处理,MD5()计算数组会返回null,里面的判断是用==所以我们用数组传值那么substr(md5($value),5,4)==0这个条件恒成立。
因为我刚访问由于这段代码$_SESSION['whoami'] = 'ea'; 我们要先传入?value[]=ea

那么nums就会自增,$_SEESION['whoami'] = 随机2个字母

并同时输出到页面上,我们再根据输出的字符修改$value[0].$value[1]的值即可,只要操作大于等于10次,就可以出flag 。
在这里插入图片描述
综上所述循环10次后输出flag:
在这里插入图片描述


4、没错!就是文件包含漏洞

题型:Web Upload
知识点:
1、当php开启allow_url_include的时候,可以用php://input伪协议包含文件
2、php中的system命令执行函数
在这里插入图片描述

这题也挺简单,利用了php伪协议



  1. php://input
    构造场景:本地web服务器根目录下有文件phpinput_server.php,代码如下:

$a = $_GET['a'];
$raw_post_data = file_get_contents($a,'r');//'php://input'
echo $raw_post_data;
?>

在浏览器中按照如下方式访问:
地址栏输入的是:http://localhost/phpinput_server.php?a=php://input
post框直接输入一段数据
Excute后,脚本会在页面中输出这段数据。
在这里插入图片描述
总结:此种方式可以用来获取post数据,但不能获取get数据。

既然题目是文件包含,我们来看下关键性函数的状态
allow_url_include
在这里插入图片描述
allow_url_include为On而allow_url_fopen为Off的时候,我们可以用用php://input伪协议进行包含
在这里插入图片描述
可以看到目录下有三个文件,flag是在第一个文件里
查看dle345aae.php:
在这里插入图片描述右键查看源码:得到flag
在这里插入图片描述


原文链接:https://www.cnblogs.com/wwcdg/p/15913929.html



推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
author-avatar
mobiledu2502854957
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有