【cgctf】WEB-file_get_contents writeup

传送门:http://chinalover.sinaapp.com/web23/

浏览页面的代码可以知:

<!--$file = $_GET['file'];
if(@file_get_contents($file) == "meizijiu"){
    echo $nctf;
}-->

通过GET方式传递参数file即可

使得传送的指定的文件内容是meizijiu

file_get_contents()函数是可以获取url远程文件的

直接用记事本写一个meizijiu传到服务器然后file参数值设置为服务器地址,如下:chinalover.sinaapp.com/web23/?file=http://120.79.51.153/ctf/1/test.txt

 

 

CTF常用Chrome插件

0x01 前言

对于大多数人来说,实际的渗透过程中,火狐浏览器用的比较多,我本人的话绝大多数情况下都是使用Chrome,因为我觉得干净、整洁、实用.其实吧,以上三个特点都是我瞎说的,我用Chrome就是因为它的Miku主题比火狐的好看,不服来看!

wing
再送你们一张我的Miku壁纸!在WallPaper里面有这个主题。
wing
ps:wing不是萌妹控,Miku帅!

0x02 常用渗透插件介绍

1.Wappalyzer

这是一个用于信息收集的插件,可以帮助我们节省很多时间,可以显示出目标站点的服务器环境,所使用的框架,系统,以及脚本语言等等,这里以我的博客为例:
wing
怎么样?是不是还阔以?
emmmm,这个火狐也有的。

下载地址:https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg?hl=zh-CN

2.Proxy SwitchyOmega

这个是代理神器,FQ、抓包必备。类似于火狐的FoxyProxy
使用方法也很简单,建立自己的情景模式即可。
wing
下载链接:https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=zh-CN

3.User-Agent Switcher for Chrome

这是切换UA的插件,在开发或者渗透测试的过程中是经常遇到的,比如有的鱼站或者某些站点只识别对应的浏览器和设备,这个插件就可以帮助我们达到伪装的效果。
wing
下载链接:https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg

4.shodan

shodan大家都知道,他有不但api还有自己浏览器插件。
shodan
通过这个插件,我们可以很快捷的看到目标站点的ip、开放端口、位置信息等等。节省了我们很多时间。虽然不一定十分准确,但是也给了我们渗透测试人员一定的帮助。
下载链接:https://chrome.google.com/webstore/detail/shodan/jjalcfnidlmpjhdfepjhjbhnhkbgleap

5.Xpath Helper

在平时开发爬虫或者写py的过程中,使用xpath有时候比使用正则更加方便的达到效果。这个插件就是帮助我们调试的。
xpath helper
下载链接:https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl

6.SelectorGadget

一个强势生成Xpath的插件,双击即可使用。
select
下载地址:https://chrome.google.com/webstore/detail/selectorgadget/mhjhnkcfbdhnjickkkdbjoemdmbfginb

7.WebDeveloper

针对web开发者的插件,好处就是调试方便。
wing
功能很多哒,可以自己去体验!
下载地址:http://chrispederick.com/work/web-developer/

8.d3coder

看着洋气的名字就知道这是编码解码用的。
功能如下:

Timestamp decoding
rot13 en-/decoding
base64 encoding
base64 decoding
CRC32 hashing
MD5 hashing
SHA1 hashing
bin2hex
bin2txt
HTML entity encoding
HTML entity decoding
HTML special chars encoding
HTML special chars decoding
URI encoding
URI decoding
Quoted printable decoding
Quoted printable encoding
Escapeshellarg
Base64 decode
Base64 encode
Unserialize
L33T-en/decode
Reverse

鼠标右键即可看到,完成后弹窗显示。

d3code

下载地址:https://chrome.google.com/webstore/detail/d3coder/gncnbkghencmkfgeepfaonmegemakcol

9.Firebug Lite

和firebug差不多,但是我觉得F12够我用了,而且界面贼丑。
下载地址:https://chrome.google.com/webstore/detail/firebug-lite-for-google-c/bmagokdooijbeehmkpknfglimnifench

10.Form Fuzzer

php://filter

php://filter是PHP语言中特有的协议流,作用是作为一个“中间流”来处理其他流。比如,我们可以用如下一行代码将POST内容转换成base64编码并输出:

1 readfile("php://filter/read=convert.base64-encode/resource=php://input");

创建FormData对象

var formData = new FormData();

formData.append("username", "Groucho");
formData.append("accountnum", 123456); //数字123456会被立即转换成字符串 "123456"


    var form = new FormData(document.getElementById("yonghu"));
//直接加入整个form的数据

使用FormData对象上传文件

你还可以使用FormData上传文件。使用的时候需要在表单中添加一个文件类型的input:

<form enctype="multipart/form-data" method="post" name="fileinfo">
  <label>Your email address:</label>
  <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br />
  <label>Custom file label:</label>
  <input type="text" name="filelabel" size="12" maxlength="32" /><br />
  <label>File to stash:</label>
  <input type="file" name="file" required />
  <input type="submit" value="Stash the file!" />
</form>
<div></div>

然后使用下面的代码发送请求:

var form = document.forms.namedItem("fileinfo");
form.addEventListener('submit', function(ev) {

  var oOutput = document.querySelector("div"),
      oData = new FormData(form);

  oData.append("CustomField", "This is some extra data");

  var oReq = new XMLHttpRequest();
  oReq.open("POST", "stash.php", true);
  oReq.onload = function(oEvent) {
    if (oReq.status == 200) {
      oOutput.innerHTML = "Uploaded!";
    } else {
      oOutput.innerHTML = "Error " + oReq.status + " occurred when trying to upload your file.<br \/>";
    }
  };

  oReq.send(oData);
  ev.preventDefault();
}, false);