![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BUUCTF web题
文章平均质量分 67
怪兽不会rap_哥哥我会crash
最近学习中正在提升自己,可能会更新的少一点
展开
-
[WUSTCTF2020]朴实无华1
这里利用到intval的漏洞,传入科学计数法时只会要e之前的数字,如果传入1e10,intval(1e4)=1,但是intval(1e4+1)=10001,因为这里是科学计数法加算数,所以会先计算了,在取值,所以理论上来说只要e前面的数字小于2000,并且科学计算以后大于2001就能绕过。首先strstr(1,2)会匹配1里2出现的地方以后的剩余的所有字符(空格用/**/替换)跑buuctf的题需要限速显示,不然跑太快了会429报错。这里需要让他原本弱等于md5以后的自己。打开以后,点击ie浏览器的图标。原创 2023-12-25 09:58:39 · 543 阅读 · 0 评论 -
[BJDCTF2020]Mark loves cat1
从代码来看这里包含了flag.php文件,并且结尾输出了flag.php文件里的$flag变量所以我们只需要绕过中间的所有设置就能自动获得flag这里直接来看我们不传入东西会触发的if函数(最后是需要什么都不触发,等执行到结尾自动输出flag)####这里最重要的就是不会改变flag且不会提前结束从代码来看有三个条件传入flag传入的flag不等于flag$_GET['flag']不等于$x,$x不等于'flag'这里的payload:?查看源代码得到flag。原创 2023-12-18 10:30:02 · 952 阅读 · 0 评论 -
[GWCTF 2019]我有一个数据库1
#我的上一篇博客附上了dirsearch的下载地址以及简单用法。这里扫出来了phpmyadmin/index.php。这里能看到phpmyadmin的版本信息。直接把phpinfo.php放出来了。然而这道题是想让我们通过版本漏洞做题。这里看起来不像是加密应该是编码错误。这里访问robots.txt。用dirsearch扫了一遍。这里我附上版本漏洞复现的博客。其实遇到这种的页面要做的事。这里能看到它所有的信息。这里并没有能找到可控点。原创 2023-12-11 10:04:44 · 419 阅读 · 0 评论 -
[NCTF2019]Fake XML cookbook1
xml注入其实和sql注入类似,利用了xml的解析机制如果系统没有将‘’进行转义,那么攻击者就可以修改或者添加xml信息例如:这里是正常的注册的xml用户输入假如我添加一个呢,这样是否就将我们输入的用户名变成了权限用户输入原创 2023-12-11 09:25:52 · 753 阅读 · 0 评论 -
[GXYCTF2019]禁止套娃1
这里我使用的是dirsearch来进行扫描的,每次扫buuctf的题时扫描速度太快他会一直报错429,就像下图箭头指向的一样,所以无论使用什么工具去扫描都得限速以及限制每次扫描时间。这里先使用读取session的方式来做一次(###拓展###最后补充了一个做法,不过。这里随便加一个head头,他的值用来执行命令,最后加了\\来注释后面的内容。就像是下面图片方框里的,直接通过浏览器访问可直接下载,说明存在git泄露。这里是从下往上读的,所以夹\\注释掉后面读取的上面的head头信息。原创 2023-12-08 16:27:38 · 1065 阅读 · 0 评论 -
[BUUCTF 2018]Online Tool1
首先是进行判断http信息头里是否在HTTP_X_FORWARDED_FOR并且是否有参数 $_SERVER[“HTTP_X_FORWARDED_FOR”] 的值才是客户端真正的IP(如果是多层代理,该值可能是由客户端真正IP和多个代理服务器的IP组成,由逗号“,”分隔)将给字符串增加一个单引号并且能引用或者转义任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。这里用的两个函数其实就是确保命令到system或者exec里执行时是安全的。原创 2023-12-06 15:00:26 · 1051 阅读 · 0 评论 -
[BJDCTF2020]ZJCTF,不过如此1
如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。replacement可以包含\\n形式或$n形式的逆向引用,n可以为0到99,\\n表示匹配pattern第n个子模式的文本,\\0表示匹配整个pattern的文本。括号内需要用到什么函数就填什么函数,这里我们需要用到getFlag()函数里的eval来执行命令。我们需要利用到getFlag()这个函数,但是并没有引用,所以就得想办法让可以使用这个函数。直接去查看网站根目录。原创 2023-12-05 09:28:14 · 500 阅读 · 0 评论 -
[BSidesCF 2020]Had a bad day1
php伪协议的利用在做题之前让我们先来了解一下php伪协议的一些知识点在正常的语法中php伪协议是这样的php://filter/read或者write=********/resource=xxxx但是在php伪协议中是靠关键字来匹配参数的,那么其余的部分按照他的规矩来说应该可以随意写成自己所想的样子例如:php://filter/read=*****/随便写/resource=xxxxxxx原创 2023-12-04 14:47:36 · 438 阅读 · 0 评论 -
[BJDCTF2020]The mystery of ip1
当前使用的一些框架,比如python的flask,php的tp,java的spring等一般都采用成熟的的MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。漏洞触发的原因未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。原创 2023-11-23 21:34:52 · 1214 阅读 · 0 评论 -
[RoarCTF 2019]Easy Java1
WEB-INF是JAVA的WEB应用安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。(用post的原因,为什么get访问返回访问码200说明有这个文件并且允许访问,但为什么没有数据,就想试试post)因为站点所有用的class文件都在WEB-INF/classes里,查看配置文件只知道了flag的位置。一般情况,isp引擎默认都是禁止访问WEB-INF目录的,在一些特定的场合(Nginx配合。有download,难道是下载文件,访问看看。原创 2023-11-13 09:14:09 · 213 阅读 · 0 评论 -
[网鼎杯 2018]Fakebook1
提示这里先用dirsearch扫一遍一般做题都要扫,这道题扫描速度不能太快,不然会429报错这里扫到了比较重要的两个,/var/www/html/flag.php这个肯定是不能直接访问的,但是还有robots.txt访问robots.txt看看这里有返回一个备份文件,下载来看看这里主要的有这点curl_exec这个函数用不好就会造成src漏洞所以这里就有了一个构成src漏洞的思路,继续往下走看怎么利用随便注册一个账户登录。原创 2023-11-08 10:24:56 · 265 阅读 · 0 评论 -
[CISCN2019 华北赛区 Day2 Web1]Hack World1
Hello出现在页面时说明flag的ascii值大于最小值和最大值的中间值,所以缩小范围到中间值到最大值,一步一步缩小找到flag。# Hello出现在页面时说明flag的ascii值大于最小值和最大值的中间值,所以缩小范围到中间值到最大值,一步一步缩小找到flag。这里使用python编写脚本(应为已经告诉了flag在flag表flag字段里所以直接跳过查表查字段)1^1^1=1 1^0^1=0,就像是真真真等于真,真假真等于假(后续我们需要利用这一点)# 提前做好接受flag的变量。原创 2023-11-07 15:30:02 · 223 阅读 · 0 评论 -
[GYCTF2020]Blacklist1
其实这一题我看到的第一反应是基于布尔的盲注原因:没有禁用ascii substr 之类的, 并且输入1和0时输入1会有回显0不会这里将预编译注入、联合注入、报错注入、都过滤的干净通过它给出的黑名单考虑可用的命令可尝试的堆叠注入例如show database和show tableshandler命令基于布尔的盲注(通过1^0^1,真假真为假,1^1^1,真真真为真,来做手段) !!这里后面会排除掉,应为后面才想起来select被禁了,但是查询需要用原创 2023-11-07 14:38:12 · 94 阅读 · 0 评论 -
[GXYCTF2019]BabySQli1
首先接受俩变量, 我们通过name变量执行sql语句查询我们的输入账户密码然后返回给result, 此时result接受的账户密码是我们通过语句查询的账户密码。此时进入if判断里, 到红标指的地方能看到他会查看result里的账户是否是admin(这里就需要我们通过username进行sql语句的时候就放进去)这里需要说的是像这种会报错的在真实情况下都是一般不会出现的, 这个是网站搭建者的测试有没有问题以后, 没有删除才会出现这样的报错情况。想试试闭合, 结果直接报错弹出来了, 闭合是'原创 2023-11-07 10:31:12 · 289 阅读 · 1 评论 -
[GXYCTF2019]BabyUpload1
提示随便上传一个php文件这里居然有报错,这下就容易很多了尝试上传图片码虽然这里显示还是php, 但是可以绕过到这里的思路应为从返回的信息来看, 似乎识别了文件内容里的php或者是原创 2023-11-07 09:31:52 · 246 阅读 · 0 评论 -
[SUCTF 2019]CheckIn1
提示先随意上传一个文件fuzz一下看能不能直接传webshell从下面来看常见php后缀都不行,其中有一个没有加后缀过了后缀验证这一步,到了下一步,但是他还会看文件的内容不能有原创 2023-11-06 16:30:49 · 193 阅读 · 0 评论 -
[网鼎杯 2020 青龙组]AreUSerialz1
到这里我们思路就清晰了通过__destruct函数进入绕过if然后调用process函数 -> 进入process函数通过op=2让它调用read函数去读取我们想要的文件并且赋值给$res, 然后调用output函数 -> 进入output函数输出$res就能得到我们想要的原创 2023-11-06 12:14:52 · 58 阅读 · 0 评论 -
[MRCTF2020]Ez_bypass1
这里需要两个参数不相等但是加密后相等, 因为使用绝对等于'==='所以这里用数组绕过 (数组绕过意思: 加入传入a[]=1&b[]=2他们的参数不相等, 但是当MD5加密的时候, md5函数会报错, 因为传入的是数组, 所以md5返回null, 都报错不就相等了吗)原创 2023-11-06 10:56:08 · 133 阅读 · 0 评论 -
[极客大挑战 2019]HardSQL1
提示(最后有我自用的字典, 需要可以自取)拿到题目以后直接fuzz这里发现过滤了 '=' '空格以及空格的变式/**/' 'union' 但是updatexml还在还可以使用报错注入, 空格可以用()代替, 而=则可以用like代替payload:这里爆出表名H4rDsq1payload:出了字段, 现在查密码payload:到这里只显示了一半的flag接下来有两个函数可以使用right和substr首先right。原创 2023-11-06 10:40:43 · 262 阅读 · 0 评论 -
[ZJCTF 2019]NiZhuanSiWei1
uselect.php这里可以看到这里又给了个file变量, 所以前面的get传参file就是个幌子, 可以不填__tostring是魔法函数, 在当对象被当成字符串引用时会调用到这里我们的思路就完整了首先通过text传入data数据, 然后传入file=useless.php将useless.php包含进来, 通过password传入反序列化, 因为存在echo $password这里就会调用__tostring函数, 然后再通过__tostring中的file_get_cont原创 2023-11-06 09:31:11 · 120 阅读 · 0 评论 -
[MRCTF2020]你传你呢1
提示这里就不整那么麻烦直接抓包测试首先对后缀测试看过滤了哪些全部被ban了到这里的后续思路通过上传一些配置文件把上传的图片都以php文件执行尝试上传图片码, 直接上传成功了, 没有对内容进行过滤到这里思路就清晰了, 按以往的经验, 因该是只做了那几个php的黑名单, 没有限制其他文件, 但是对content-type做了过滤, 只能走图片的类别, 所以上传其他文件时需要改为图片的content-type就ok尝试传入.htaccess虽然报错说我上传了相同的文件但还是成功了。原创 2023-11-05 11:47:58 · 269 阅读 · 0 评论 -
[护网杯 2018]easy_tornado1
在hints.txt里可以看到这里的filehash是md5加密文件名在和cookie_secret密匙在加密一次才能访问。render()函数是Django中的渲染,想到ssti模板注入(后续尝试filehash报错以后才发现的)将md5加密后/fllllllllllllag和密匙拼接在加密。通过提示的handler(这里想起来有个handler函数)这里可以看到flag在/fllllllllllllag里。拿到题目首先就看到有提示flag.txt。查看hints.txt。查看flag.txt。原创 2023-11-04 09:48:00 · 79 阅读 · 0 评论 -
[BJDCTF2020]Easy MD51
这里就涉及到MD5以及mysql的性质问题看到这种sql语句第一项到的就应该是万能密码or1=1或者or2=2之类的一串特定的代码(ffifdyod)被md5加密以后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位ascii解释刚好是 ' or '6 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 1select * from 'admin' where password= '' or '6xxxxx' ,类似于or1=1这种原创 2023-11-03 09:37:22 · 170 阅读 · 0 评论 -
[极客大挑战 2019]BuyFlag1
这里使用科学计数法1e10 (1e10=10^10=10000000000)password的值不能是数字但是password得等于404。看来是靠cookie里的user来判断是否是学生。告诉让post传参money和password。这里我用的是火狐的插件hackbar。成功绕过但是说money的字段太长了。查看源代码,找到购买flag。原创 2023-10-26 15:29:30 · 38 阅读 · 0 评论 -
[RoarCTF 2019]Easy Calc1
这里有个小考点script语句限制了get传参接收的num参数,如果传入的不是数字就不给访问calc.php文件的权限,就不能利用到calc.php里的函数eval来输出这里通过php的性质绕过空格在传入后会变为下划线 '_'例如如果传入参数/calc.php?%20num=abc,可以绕过script语句做的waf(就像是我要的是这个num但是你给我的是_num我就不干了),但是php就可以正常识别原创 2023-10-26 15:06:40 · 104 阅读 · 0 评论 -
[ACTF2020 新生赛]BackupFile1
看到题目就应该想到文件遍历,这里我使用的是dirsearch工具(kali上自带有,或者看我的这篇文章去安装windows dirsearch安装以及环境搭建-CSDN博客)原创 2023-10-21 09:46:03 · 69 阅读 · 0 评论 -
[极客大挑战 2019]PHP1
最后payload:O%3A4%3A%22Name%22%3A3%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B%7D。然后是类中变量的个数:{类型:长度:"值";O代表类,然后后面4代表类名长度,接着双引号内是类名。获得flag.php(这个是假的)需要绕过wakeup所以改为。提示说有一份网站备份文件。原创 2023-10-16 10:20:30 · 43 阅读 · 0 评论 -
[极客大挑战 2019]BabySQL1
(在后端匹配oorr中的or将其过滤以后剩下的o和r组成or重新组成需要的函数)使用order by猜测有几个字段(还是一样的,过滤了哪些,就双写绕过哪些)当尝试到字段四的时候报错,说明只有三个字段1'oorrder bbyy 4#老样子双写-1'uniunionon selselectect 1,2,3#既然知道了他虽然有过滤黑名单但是可以双写绕过那就等于没有黑名单。查看报错语句,发现过滤了or,尝试双写绕过和大小写绕过。双写绕过1'oorr1=1#大小写绕过1'Or1=1#成功爆出注入点2和3。原创 2023-10-16 09:33:58 · 162 阅读 · 0 评论 -
[极客大挑战 2019]Upload1
在现在的php中原创 2023-10-13 09:26:32 · 38 阅读 · 0 评论 -
[HCTF 2018]WarmUp1
include函数有一个机制,如果你直接访问文件比如说index.php,他就会在当前目录下取寻找,添加../是返回上一级的意思,./的意思是就在这个路径寻找。所以最后的payload:/index.php?,最后触发include包含函数还需要url中有file。进行代码分析,每行代码都有代码分析方便记住,以及做笔记。查看源代码有提示,访问source.php。首先先访问hint.php。简单php代码审计题。原创 2023-10-11 00:07:37 · 94 阅读 · 0 评论 -
[极客大挑战 2019]Knife1
这题的目的应该是让熟悉菜刀,哥斯拉,冰蝎子或者蚁剑工具使用。添加以后在底层目录发现flag。直接给出了shell。原创 2023-10-12 15:04:35 · 48 阅读 · 0 评论 -
[极客大挑战 2019]Http1
让从https://Sycsecret.buuoj.cn访问这里需要用到referer更改来源。抓包然后修改http请求头(抓到包以后ctrl+r放重放器更方便不用频繁抓包)改为127.0.0.1是因为它是回环地址一般用于测试,相当于本地登录的意思。这题考察的是对http请求头数据包的理解及分析。那道题查看源代码发现有secret.php。这里使用user-agent更改浏览器标志。这里用到X-Forwarded-For。然后让用Syclover浏览器来访问。访问secret.php。原创 2023-10-12 14:54:10 · 130 阅读 · 0 评论 -
[极客大挑战 2019]LoveSQL1
既然提示了sqlmap那就先用工具跑一遍吧。原创 2023-10-12 11:01:56 · 223 阅读 · 0 评论 -
[极客大挑战 2019]Secret File1
应为bp默认的代理就127.0.0.1:8080所以我们直接设置代理为下图就好,就不用去更改bp的代理设置了。依旧是代码审计,看样子是想让用php伪协议来读取flag.php文件。访问页面以后点击select以后直接跳转到了另一个界面,抓包查看。这一题考察的就是简单的信息收集以及burpsuite的简单使用。成功读取到base64加密后的flag.php。应该是把flag给注释掉了,用伪协议试试。//flag放在了flag.php里。点击设置然后滑倒最下面点击网络设置。原创 2023-10-12 10:07:25 · 59 阅读 · 0 评论 -
[SUCTF 2019]EasySQL1
先用bp抓包fuzz一下看拉黑了哪些东西ctrl+i把他放到intruder中添加要注入的位置设置payload加载payload文件这是我自用的,可能有什么不足(需要可以自取)unionselectasciisubstrfromorand1=1and 1=1updatexmlhandlersleeplength()--%23table_namewheredatabase()原创 2023-10-11 12:01:45 · 225 阅读 · 0 评论 -
[强网杯 2019]随便注1
(随便哪个字母大小写都行,主要是让它和正则不匹配)拉黑了/select|update|delete|drop|insert|where|这里对set和prepare进行了过滤,尝试大小写绕过。试试union select,出现了黑名单。这里尝试使用预编译注入。原创 2023-10-11 11:05:18 · 24 阅读 · 0 评论 -
[GXYCTF2019]Ping Ping Ping1
给了ip,题目提示ping,因该是rce127.0.0.1;ls找到flag.phpcat flag.php尝试读取flag.php但是空格被拉进黑名单了在linux中空格有很多中绕过方式这里我们用$IFS$1,其他的我已经试过了无回显/?看来还把flag给ban掉了先查看index.php看过滤了什么ip=");");");");echo "可以看到过滤了flag和空格还有各种符号。原创 2023-10-11 10:36:08 · 55 阅读 · 0 评论 -
[ACTF2020 新生赛]Exec1
payload:| ls ../../../ 意思是显示向前三个目录里的文件(出现flag)RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。使用了系统命令执行函数(以下都是系统执行命令,如果php代码中存在需要考虑rce漏洞)本题代码猜测是system('ping $a')payload :| ls 有回显。使用命令拼接符尝试rce。原创 2023-10-11 08:10:20 · 100 阅读 · 0 评论 -
[ACTF2020 新生赛]Include1
应为是include简单包含,考虑到可能把flag注释掉了。(解码工具网站,这个网站集合了大多数的解码方式)最后使用base64解码就好。用php伪协议来读取。原创 2023-10-11 07:52:05 · 31 阅读 · 0 评论 -
[极客大挑战 2019]Havefun1
拿到题目最重要的就是信息收集,如果没有思路就是信息收集的不够。查看源代码有简单php代码。原创 2023-10-10 22:01:33 · 32 阅读 · 1 评论