首页 > 其他分享 >[RoarCTF 2019]Easy Calc

[RoarCTF 2019]Easy Calc

时间:2022-11-09 22:12:21浏览次数:45  
标签:RoarCTF foo bar get chr num 2019 Calc php

先打开题目发现是一个计算器,先输入1+1,输出2

 

 

 

先判断是否是SQL注入,发现并没有任何变换

Ctrl+u查看源代码,发现提示信息,有waf,发现参数是传到calc.php,num值的加密,在执行eval();题目应是命令执行

 

 

 先看看calc.php页面,发现过滤挺多的

 

 

揭发

 原理1:利用PHP的字符串解析特性
    PHP将查询字符串(在URL或正文中)转换为内部$_GET或关联数组$_POST。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。
    例如:
    /?foo=bar变成Array([foo]=> “bar”)。
    /? foo=bar变成Array([foo]=> “bar”)。 //?号后有一个空格
    /?+foo=bar变成Array([foo]=> “bar”)。 //?号后有一个+号
原理2:利用scandir()列出目录和文件,var_dump()用于输出
  scandir()函数返回指定目录中的文件和目录的数组。
  scandir(/)相当于ls /
  var_dump()相当于echo
原理3:利用file_get_contents()读取并输出文件内容
例如 file_get_contents(/flag.php),读取/flag.php的代

先经过waf检测,大概就是只允许num的值为数字。那我们就让waf检测不到num的存在。

利用原理1

 

 这样waf就找不到num这个变量了,因为现在的变量叫“ num",而不是"num"。 但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。
测试一下,果然是这样的

 

 然后利用原理2

构造payload:  ?num=var_dump(scandir(chr(47))),因为/被过滤了,用chr数值表达式可以绕过,chr表在文章末尾

 

 

发现f1agg,利用原理3,使用file_get_contents获取f1agg里的数据,构造payload:num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)),即可得到flag

 

 chr表:

 

标签:RoarCTF,foo,bar,get,chr,num,2019,Calc,php
From: https://www.cnblogs.com/mu-yi2/p/16875355.html

相关文章

  • Apache Flink和RocketMQ活动行,上海,2019年7月6号,现场,还有课件分享
    一、活动主题:ApacheFlink和RocketMQ技术交流二、活动现场现场组图三、课件分享点击下载四、收获算是有种觉悟吧,交流对学习很重要,有机会要积极加入社区......
  • 2019年国内开源镜像站点汇总(已更新,之前的好多不能使用的)
    2019年国内开源镜像站点汇总一、站点版企业站1.搜狐:​​http://mirrors.sohu.com/​​​2.网易:​​http://mirrors.163.com/​​3.阿里云:​​http://mirrors.aliyun.com/......
  • VS2019的安装
    下载:从我网盘下载:链接:https://pan.baidu.com/s/1n2JpLc0A2Qq0a5bKsgQGfA    提取码:6666       ......
  • 【408】2019
    t11最佳归并树虚段的个数假如这个树是一个最佳归并树(K路归并)。那么假设叶子节点(初始归并段)个数为N0,则有这个式子成立:(N0-1)mod(K-1)=0现在已知叶子结点是120......
  • [WC2019] I 君的商店
    首先考虑,若我们知道一个数,我们如何知道其他数是1还是0假设已知\(a\),对于\(b\leqc\)可知:若\(a\leqb+c\)则有\(a\leqc\)(否则\(a=0,c=1\)不满足条件)若\(a\ge......
  • 使用VS2019生成exe安装包
    1、安装工具包  2、在解决方案上右击,选择添加–>新建项目   3、查找setup模板,下一步并填写名称      4、进入文件系统设置主输出   ......
  • VS2019项目启动时设置管理员权限启动
    C#项目的设置方法:右键项目(不是解决方案)-项目属性-安全性-选中启用ClickOnce安全设置此时,再Properties文件夹中会自动生成一个app.manifest文件。在此文件中,将代......
  • BUUCTF [强网杯 2019]随便注 1
    1.拿到题目,先输入一个1'试一下是否存在注入点报错error1064:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMariaDBserverve......
  • 使用vs2019的scanf报错怎么办
    我之前看视频(p3,23:38)的时候发现可以通过这样解决报错在开头加上这个#define _CRT_SECURE_NO_WARNINGS1首先先解释下为啥会报错,就是scanf是C语言标准的语言,但是有些编译器......
  • 2019内部赛团体赛
    Webcapture302跳转直接curl-vvvindex.phpsha1_test弱类型比较数组绕过。http://b283de07890c42318826c8e4b0c62fd24b8bacd9b7c74ba8.changame.ichunqiu.com/?......