Web-[RoarCTF 2019]Easy Calc】的更多相关文章

web [RoarCTF 2019]Easy Calc(利用PHP的字符串解析特性) 先上源码 <?phperror_reporting(0);if(!isset($_GET['num'])){    show_source(__FILE__);}else{        $str = $_GET['num'];        $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];  …
[RoarCTF 2019]Easy Calc 题目 题目打开是这样的 查看源码 .ajax是指通过http请求加载远程数据. 可以发现有一个calc.php,输入的算式会被传入到这个php文件里,尝试一下能不能打开 可以打开,并且显示了源码 foreach 语法结构提供了遍历数组的简单方式. 语法: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statem…
看一下页面源码,发现了提示: calc.php?num=encodeURIComponent($("#content").val()) $("#content").val() 是什么意思: 获取id为content的HTML标签元素的值,是JQuery,     $("#content")相当于document.getElementById("content");       $("#content").v…
简介  原题复现:  考察知识点:http协议走私.php字符串解析漏洞  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 过程 一枚菜狗打开页面  懵逼一个小时然后   搜索WP..... 查看源码发现 利用php字符串解析漏洞 计算的时候会访问calc.php页面  访问它获得源码  审计发现有个过滤  过滤完执行eval() 所以可以构造 http://node3.buuoj.cn:28719/calc.ph…
0X01:什么是HTTP请求走私 HTTP请求走私属于协议层攻击,是服务器漏洞的一种. HTTP请求走私是一种干扰网站处理从一个或多个用户接收的HTTP请求序列的方式的技术.使攻击者可以绕过安全控制,未经授权访问敏感数据并直接危害其他应用程序用户. 一般来说,反向代理服务器与后端的源站服务器之间,会重用TCP链接.这也很容易理解,用户的分布范围是十分广泛,建立连接的时间也是不确定的,这样TCP链接就很难重用,而代理服务器与后端的源站服务器的IP地址是相对固定,不同用户的请求通过代理服务器与源站服…
看看题目内容,一个计算器,并且过滤了非数字的值,查看源码,上了waf,并且在calc.php显示waf的规则 <?php error_reporting(0); if(!isset($_GET['num'])){ show_source(__FILE__); }else{ $str = $_GET['num']; $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^']; foreach (…
0x01知识点: WEB-INF/web.xml泄露 WEB-INF主要包含一下文件或目录: /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则. /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中 /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动ja…
前置知识 WEB-INF/web.xml泄露 java web工程目录结构 Servlet访问URL映射配置 由于客户端是通过URL地址访问Web服务器中的资源,所以Servlet程序若想被外界访问,必须把Servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成.<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<s…
目录 [RoarCTF]Easy Calc 知识点 1.http走私绕过WAF 2.php字符串解析特性绕过WAF 3.绕过过滤写shell [RoarCTF]Easy Calc 题目复现链接:https://buuoj.cn/challenges 参考链接:楼上请让路 RoarCTF2019 writeup 知识点 1.http走私绕过WAF 详细说明见协议层的攻击--HTTP请求走私 一般来说,反向代理服务器与后端的源站服务器之间,会重用TCP链接.这也很容易理解,用户的分布范围是十分广泛,…
目录 [RoarCTF 2019]simple_uplod 1.ThinkPHP文件上传 2.upload()多文件上传 ThinkPHP上传文件名暴破 [RoarCTF 2019]simple_uplod 题目复现链接:https://buuoj.cn/challenges 参考链接:官方wp 1.ThinkPHP文件上传 参考官方文档可知并没有题目中限制后缀名的方法,所以可以无视allowext http://document.thinkphp.cn/manual_3_2.html#uplo…
目录 [RoarCTF 2019]Online Proxy [RoarCTF 2019]Online Proxy 题目复现链接:https://buuoj.cn/challenges 参考链接:官方wp 看到记录数据和源代码里面注释中的ip地址,猜测是把客户端的IP地址记录到数据库当中. 经过尝试发现添加X-Forwarded-For可以修改ip,找到注入点 接下来我的思路是比较常规的时间盲注,赵师傅则是将字符转为数字直接输出,效率高得多,贴出来学习一下 #!/usr/bin/env pytho…
启动靶机,查看网页源码,发现关键字 $("#content").val() 是什么意思: 获取id为content的HTML标签元素的值,是JQuery,     ("#content")相当于document.getElementById("content"); ("#content").val()相当于 document.getElementById("content").value; 多次尝试找不到思…
时间如白驹过隙,又到了新的一周的慕课学习啦.这周内容较为简单,主要讲述互联网内部的发展状况. The Early World-Wide-Web Getting to the Web 谈到万维网,我们不能不想起其创始人,而要明白它如何创造万维网,我们不能不去了解其所处的环境.本小节介绍了CERN——欧洲核子研究组织,它是世界各地物理学家访问.居住和合作的地方,这里有着最顶尖的各种各样的人才.Charles Severance十分喜欢这里,他向我们介绍了CERN的一些基本情况.他也曾有幸作为一名专业…
1.js继承: 想要继承,就必须要提供个父类(继承谁,提供继承的属性) 组合继承(组合原型链继承和借用构造函数继承)(常用) 重点:结合了两种模式的优点,传参和复用 特点:1.可以继承父类原型上的属性,可以传参,可复用. 2.每个新实例引入的构造函数属性是私有的. 缺点:调用了两次父类构造函数(耗内存),子类的构造函数会代替原型上的那个父类构造函数. 2.对象赋值(深拷贝): JSON.parse(JSON.stringify(objectToClone)) #这种方法能解决绝大部分业务 var…
遇到3道有点意思的web,记录一下~ web1 题目地址:http://warmup.balsnctf.com/ 源码如下所示: <?php if (($secret = base64_decode(str_rot13("CTygMlOmpz" . "Z9VaSkYzcjMJpvCt=="))) && highlight_file(__FILE__) && (include("config.php")) &a…
前言: 上周学习了第一个网络NSFnet,美国国家科学基金会(National Science Foundation,简称NSF)在全美国建立了6个超级计算机中心所互联的一个网络,这周继续学习网络的发展历史. The Early World-Wide-Web: Getting To The Web 之前去过了密西根大学,这次去了个新地方——CERN(法语:Conseil Européenn pour la Recherche Nucléaire,欧洲核子研究组织),CERN是世界上最大型的粒子物…
要素察觉 打开calc.php发现源码 过滤了很多字符.题目一开始提示了有waf,最后通过eval实现计算功能.考虑利用该函数读取flag文件,先尝试弹个phpinfo 被waf拦截,在num参数前面插一个空格来绕过waf 原理:加空格使waf把num参数错误解析成%20num,这个参数是不存在的,但php解析的时候会自动把空格删掉,从而bypass. 利用var_dump和scandir查看目录.‘/’被过滤所以用相应的ascii表示 写了个php转码 构造payload:calc.php?…
进入之后可以看到我们需要输入一个计算式来得到答案,burpsuite进行抓包之后发现页面来自于calc.php 我们直接访问calc.php页面 发现源代码泄露 可以看到当我们没有输入num值的时候就会显示源代码,否则对输入的num进行eval命令执行,在命令执行之前有黑名单过滤. 我们需要绕过黑名单进行命令执行. 虽然是这样,但是ls不在黑名单执行里面,所以我们先ls一下 返回了403界面. 这里很可能是因为有waf设备保护着输入的参数,这里我们利用php的特性,使用php字符串解析绕过WAF…
基础知识点   1.水平垂直居中 子绝父相,子盒子设置绝对定位,设置top:50%;left:50%,margin-top:-50%;margin-left:-50%; 子绝父相,子盒子设置绝对定位,设置 left & top & right & bottom为0;margin: auto; 伸缩盒子,父元素设置flex;justify-content: center;align-items: center; 利用transform属性,需要设置子绝父相,设置top:50%;lef…
ECharts (Enterprise Charts 商业产品图表库) 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘.整合的能力. ———— 大数据时代,重新定义数据图表的时候到了 提供商业产品常用图表库,底层基于ZRender,创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图).柱状图(条状图).散点图(气泡图).饼图(环形图)…
[20 Points] Emdee five for life [by L4mpje] 问题描述: Can you encrypt fast enough? 初始页面,不管怎么样点击Submit都会显示"Too slow!" 依据Html源码,编写Python脚本进行利用 import requests import hashlib import re url="http://docker.hackthebox.eu:34650/" r=requests.sessi…
1.span标签的width和height分别为多少?     首先span不是块级元素,是不支持宽高的,但是style中有了个float:left:就使得span变成了块级元素支持宽高,height:100%;即为,200,宽度由内容撑开. 但是内容中的 i 是绝对定位,脱离了文档流,所以不占父级空间,所以span的width=0…
严禁转载,严禁分享,只供私自鉴赏,请君悉知! 一:基础题 1.什么是margin塌陷?请写出至少三种解决margin塌陷的方法. 答:当两个盒子在垂直方向上设置margin值时,会出现一个有趣的塌陷现象. 解决方法: (1)为父盒子设置border,为外层添加border后父子盒子就不是真正意义上的贴合  (可以设置成透明:border:1px solid transparent). (2)为父盒子添加overflow:hidden: (3)为父盒子设定padding值: (4)为父盒子添加po…
0x00 知识点 1:Think PHP上传默认路径 默认上传路径是/home/index/upload 2:Think PHP upload()多文件上传 think PHP里的upload()函数在不传参的情况下是批量上传的,这里可以理解为防护机制只会检测一次,运用条件竞争,多次上传便可以绕过文件后缀的检测,至于为什么上传两次1.txt,是为了获取php文件的后缀,因为这里的后缀命名方式运用了uniqid函数它是基于微秒的当前时间来更改文件名的,两个同时上传生成的文件名相差不会太远. 3Th…
BUUCTF 几道WEB题WP 今天做了几道Web题,记录一下,Web萌新写的不好,望大佬们见谅○| ̄|_ [RoarCTF 2019]Easy Calc 知识点:PHP的字符串解析特性 参考了一下网上大佬文章http://gality.cn/2019/10/21/php%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%A7%A3%E6%9E%90%E7%89%B9%E6%80%A7%E7%A0%94%E7%A9%B6/ 在php中,查询的字符串(URL或正文中)会被转换为内部$_G…
WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content=…
[强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update,delete,insert这些sql语句呢? 原来这题需要用到堆叠注入: 在SQL中,分号(;)是用来表示一条sql语句的结束.试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入,而堆叠注入可以执行任意sql语句 这下就好理解了,过滤上面那些语…
HTTP请求走私 HTTP请求走私 HTTP请求走私是针对于服务端处理一个或者多个接收http请求序列的方式,进行绕过安全机制,实施未授权访问一种攻击手段,获取敏感信息,并直接危害其他用户. 请求走私大多发生于前端服务器和后端服务器对客户端传入的数据理解不一致的情况.这是因为HTTP规范提供了两种不同的方法来指定请求的结束位置,即 Content-Length 和 Transfer-Encoding标头. 分类 CLTE:前端服务器使用 Content-Length 头,后端服务器使用 Tran…
很多java报错在我们渗透的时候经常会被发现,但由于没什么用,危害比较低被忽略,开发也很不愿意修改. 但从纵深防御的角度来说,多个小问题的结合就会产生严重的问题.此次遇到的一个ctf题就是一个例子. 题目来自 [RoarCTF 2019]Easy Java 进入题目后就是一个登录页面 一顿爆破得到用户名/密码  admin/admin888 然而非常失望,这思路根本不对 点击help看看 发现了一个java.io的报错,从报错和url上看非常像读取文件,这里就想到了任意文件读取,但是按理说应该有…
转自: https://developers.google.com/web/updates/2019/02/rendering-on-the-web Rendering on the Web Google Developers Web Updates02-06 23:52 As developers, we are often faced with decisions that will affect the entire architecture of our applications. On…