picoCTF2023
前言没怎么做,有空就打打。score:1700
一些太简单的就不写了
一些难题待学
web
cancri-sp
msfroggenerator2
forensics
UnforgottenBits
Invisible WORDs
web解决MatchTheRegexfunction send_request() { let val = document.getElementById("name").value; // ^p.....F!? fetch(`/flag?input=${val}`) .then(res => res.text()) .then(res => { const res_json = JSON.parse(res); alert(res_json.flag) return false; }) return false; }
^p…..F!?
最后的!?表示匹配!0次或者一次
SOAP抓包,然后看到xml的信息
改一 ...
VNCTF 2023
就写了象棋王子,其他rust和go,没学过没写。
留着以后再来康康
https://www.cnblogs.com/nLesxw/p/VNCTF2023.html
https://blog.csdn.net/akxnxbshai/article/details/129113110
https://blog.csdn.net/qq_54704239/article/details/129100897
hscctf 2023
题目地址:https://race.hscsec.cn/challenges
这个网址里面还有其他靶场,有机会可以看看。
EASYPHY文件上传题
mime检测,得图片前缀绕过
首个页面有文件包含功能。
/?acti0n=../../../etc/passwd
?acti0n=upload/4869953b4070fbd1d6823d6ee6561985/wen.png
存在文件包含。这里可以将png解析为PHP执行,所以可以GIF89a<?php show_source("flag.php"); ?>,不是很懂(坑),不过做的时候发现可以GIF89a<?php phpinfo(); ?>,这里也是一个启发吧,发现disable_function也过滤了很多。
另外一种是phar,读取源码可以发现有file_exist(),删除的时候会触发到。
这题学到主要是网页的各个页面都是有用的,一开始做题时候漏掉了首页。发现不了文件包含。读取源码base64被ba ...
[GYCTF2020]EasyThinking
题目打开直接一句话 Vulnerability Search,再查看查看,注册登录一下,漏洞点应该是在搜索了。发现会显示用户名,还有历史搜索记录。根据题目名字,应该是thinkPHP漏洞,随便在url输入不存在的地址。报错[ThinkPHP](http://www.thinkphp.cn) V6.0.0
且会有路径控制器不存在:app\home\controller\Sadasf
网上搜索一下漏洞。发现大致有两个,一个是反序列化,一个是任意文件写入漏洞。试着搜一下,发现在这题不能硬套,而且还没有利用到搜索这个功能点。这种题应该基本会有源码泄露,方便审计。试一试,www.zip可以下载到源码。
审计源码根据报错路径,查看一下文件,一般这些框架都是看controller有什么,在member.php里面看到了网页提供的功能函数(搜索,首页,登录等)
(坑)(在网上找不到分析得很彻底的文章,打算等以后学thinkPHP再来。可以试一下本地复现网上的漏洞)
session可控,修改session,长度为32位,session后缀改为.php(加上.php后为 ...
[网鼎杯2018]Unfinish
二次注入
有Login.php,猜测register.php,注册后登录,是鬼刀的壁纸,还有左边可以看见用户名。没什么注入点感觉。猜测注册还有登录的地方可以注入,然后登录成功后又将用户名从数据库中拿出来,可能会有二次注入。且注入点应该在用户名。
重新注册。邮箱密码正常,用户名输入一些奇怪的字符,发现注册成功会跳转,不成功则还是在原来的PHP页面,有些字符是黑名单里面的,返回nonnnnooo!!
fuzz information过滤了,
发现邮箱密码重复,则会登录之前的用户,即不会覆盖掉。
用网上的脚本,还有自己的脚本,发现跑着跑着会有字符没法显示,导致出错。
fuzz
(坑)
知识点1’ and ‘0测试
+号 ‘0’+’hex(‘flagsa’)’->得到hex值
有的16进制后有字母,进行+,字母会被弄没,导致结果不准。可以两次hex
‘0’+hex(hex(‘flag’))+’0’,但是会变成科学计数法
ASCII
‘0’+ascii(substr(database(),1,1))+’0’
但是题目过滤了逗号,那就用from…for…
‘0’+ascii(substr ...
CISCN2019 华东南赛区]Double Secret
题目打开,给了一句Welcome To Find Secret,常规搜索一下信息,没找到。
由题目和给的话猜测?secret,随便传一个,没反应。
结果是/secret 长知识了。 又有一句话Tell me your secret.I will encrypt it so others can’t see 题目说double secret 那么就应该是?secret了,发现会根据传递的来回显,再传一些奇奇怪怪的试一试,会发现报错。是Python的flask,debug模式。看报错的具体内容。
发现有用了rc4解密,那我们传进去的应该是得rc4加密后的内容。这里用了render_template_string函数,可以判断有ssti漏洞
RC4在 密码学 中, RC4 (来自Rivest Cipher 4的缩写)是一种 流加密 算法, 密钥 长度可变。 它加解密使用相同的密钥,因此也属于 对称加密算法 。
网上脚本import base64from urllib.parse import quotedef rc4_main(key = "init_key&qu ...
[NCTF2019]SQLi
前置知识regexp 正则注入select database() regexp "^d"; 输出是否数据库名开头是d^d是正则表达式,也可以用其他的如regexp '^[a-z]' #判断一个表的第一个字符串是否在a-z中regexp '^r' #判断第一个字符串是否为rregexp '^r[a-z]' #判断一个表的第二个字符串是否在a-z中regexp 'y$' #判断最后一个字符串是否为y(不过regexp不区分大小写)(坑)用or password regexp binary {}或者or (select binary username from users limit 0,1) regexp '^{}'--+https://blog.csdn.net/qq_43625917/article/details/105189912https://blog.csdn.net/qq_36761831/art ...
[网鼎杯 2018]Comment
题目进入是有个发帖按钮。尝试发帖,跳转到登录。提示账号密码。那么猜密码,或者爆破,直接猜zhangwei666,正确。
提交留言,发现有的提交之后可以直接在comment.php查看,有的提交后则不显示。发现:在category中加入’’,”这些符号,则会留言不成功,推测应该是这样会导致语句执行出错而不成功。所以可以尝试’,”,看看是什么闭合方式。发现只有一个双引号会成功,那应该是单引号闭合了(因为单引号闭合,如果输入单引号则会有三个单引号,引发错误)
而在comment.php?id=1这里可能有注入,但是尝试注入也没有发现什么,异或也不行。所以还是尝试在登录注册这里来。
可以使用脚本先进行测试
import requestsfrom bs4 import BeautifulSoupimport reurl = "http://f0aafbd4-e538-4c85-8f03-f97935710ee7.node4.buuoj.cn:81/"write = url + "write_do.php?do=write"cookie = ...
[SWPUCTF 2018]SimplePHP
题目查看文件中url可以查看已有的PHP文件。
?file=index.php
index.php
<?php header("content-type:text/html;charset=utf-8"); include 'base.php';?>
upload_file.php
<?php include 'function.php'; upload_file(); ?>
function.php
<?php //show_source(__FILE__); include "base.php"; header("Content-type: text/html;charset=utf-8"); error_reporting(0); function upload_file_do() { global $_FILES; $filename = md5($_FILES["file"][&qu ...
GYCTF2020]Ezsqli
题目有输入框,依次输入1,2发现回显,3的时候无回显。随便fuzz一下
过滤了or,information,union,and估计是要盲注
尝试一下异或注入
0^(length(database())>10)
测试 if 也可以
id=if(length(database())=21,1,0)if(ascii(substr(database(),{},1))>{},1,0)if(database()=0x676976655f6772616e6470615f70615f70615f7061,1,0)
过滤了information表,采用替换表
sys.schema_table_statistics_with_buffer,sys.x$schema_flattened_keys
则查库查表都一样,但是这几个表中没有储存列名。所以得用无列名注入
数据库give_grandpa_pa_pa_pa表名f1ag_1s_h3r3_hhhhh,users233333333333333
无列名注入数据库select (select ‘b’)&g ...
