Lemon's blog

Bugku—web题总结(三)

Record my learning process of CTF.

字数统计: 701阅读时长: 2 min
2019/09/02 Share

前言:继续总结,学习知识!!!

你从哪里来

在这里插入图片描述
根据提示,可以知道这道题应该是构造referer——伪造来源浏览器,抓包进行伪造

1
Referer:https://www.google.com

在这里插入图片描述

程序员本地网站

在这里插入图片描述
根据提示,这道题考察的是xff——伪造IP地址来源,抓包修改成本地IP地址即可

1
X-Forwarded-For: 127.0.0.1

在这里插入图片描述

md5 collision(NUPT_CTF)

在这里插入图片描述
简单的MD5碰撞,由==的用法,0 == 字符串是成立的,从而可以绕过MD5检查。之前了解过MD5算法的漏洞,会将0e开头的当作0,所以只要找到常见的一个以oe开头加密过的MD5值即可

举个例子:

1
2
3
4
5
6
7
8
9
10
<?php 
$str = "Hello";
echo md5($str);
if (md5($str) == "8b1a9953c4611296a827abf8c47804d7")
//0 == 字符串
{
echo "<br>Hello world!";
exit;
}
?>

理解了这些,就构造payload:

1
?a=s155964671a

在这里插入图片描述

never give up

在这里插入图片描述
这道题一开始困住很长时间,看了源代码提示后进入这个页面
在这里插入图片描述
便毫无思路了,后来才发现在源代码中查看1p.html才有相应的提示。。。
在这里插入图片描述
发现一串base64编码,进行解码
在这里插入图片描述
明显是URL编码,继续解码
在这里插入图片描述
require() 函数引入f4l2a3g.txt文件,直接查看即可得出flag
在这里插入图片描述

web4

在这里插入图片描述
看源代码发现
在这里插入图片描述
URL编码的,解码
在这里插入图片描述
unescape() 函数可对通过 escape() 编码的字符串进行解码。

接下来根据eval(unescape(p1) + unescape('54aa2' + p2));顺序进行拼接即可

1
67d709b2b54aa2aa648cf6e87a7114f1

得出flag
在这里插入图片描述

管理员系统

在这里插入图片描述
题目是管理员系统,猜测用户名应该是admin,查看源代码发现
在这里插入图片描述
解码后得到test123,应该是密码,但是输入之后发现
在这里插入图片描述
所以抓包XFF伪造IP地址即可得出flag
在这里插入图片描述

login1(SKCTF)

在这里插入图片描述
提示是SQL约束攻击,了解一下SQL约束攻击
基于约束的SQL攻击
具体的就不详细解释了,大师傅已经在博客中说的很清楚了。
在这里插入图片描述
注册一个普通账号,会提示不是管理员还想登进去,那就注册一个admin账号,但是已经存在了,这时就用道了SQL约束攻击

构造用户名
在这里插入图片描述
后面多加空格,密码按照要求即可

注册成功后,输入admin和注册时的密码即可
在这里插入图片描述
原理的话就是大师傅的这一段话,如果不太了解可以仔细看大师傅的博客
在这里插入图片描述

求getshell

在这里插入图片描述
根据提示,只能上传图片,抓包
在这里插入图片描述
将后缀名改为php发现上传不成功,之后尝试各种方法如:后缀名加::$DATA绕过,尝试了phtml,php3,php4, php5, pht发现还是不行,最后看了大师傅们的博客
在这里插入图片描述
这个地方需要大小写搭配上php5`才能绕过,是真的想不到,之前也没遇到过。

发包即可得出flag

这次就先总结到这里!

CATALOG
  1. 1. 你从哪里来
  2. 2. 程序员本地网站
  3. 3. md5 collision(NUPT_CTF)
  4. 4. never give up
  5. 5. web4
  6. 6. 管理员系统
  7. 7. login1(SKCTF)
  8. 8. 求getshell