- 博客(16)
- 收藏
- 关注
原创 ctfshow-web入门-sql注入-171-186
结尾要用#的url编码形式%23,不能--+,因为+代表的是空格,#在GET型注入里不能用,#在url地址中表示锚点。过滤了空格,*,%09, %0a, %0b, %0d,用%0c(换页符)绕过。过滤了flag,还是不查用户名,用占位符占位,只查 password。然后无过滤注入 2,发现只有两列,也是先查数据库名,表名,列。查询结果的输出和查询语句的内容都不能出现数字,可以替换数字,过滤了空格,/**/,%09,%0a,%0b,%0c,%0d。过滤了所有空格和*,#,file,into,select。
2025-12-08 21:04:45
911
原创 ctfshow-web入门-361-372-ssti
来直接调用内置函数,Python 的内置函数和对象通常是全局可用的,但它们通常不是函数内部的一部分。因此,要在函数内部访问内置函数(如。将类方法替换,如lipsum|atter(request.cookies.a)=lipusum.__globals__拿子类 {{().__class__.__base__.__subclasses__()}}拿基类 {{().__class__.__base__}}将被单引号笼罩的字符换为ascii值,然后用+(%2b)连接。函数的类,eval函数在。
2025-11-06 21:26:18
699
原创 [NewStarCTF 2023 公开赛道]POP Gadget
或者本题可以不用url编码,直接echo serialize($b);注意要把空格url编码后的“+”改为%20。构造pop链编写脚本。
2025-08-01 00:44:12
395
原创 ctfshow-web入门-254-266-反序列化
只要访问即会获取之前写入的 session 数据,然后 check.php 包含 inc/inc.php ,即会触发 User类 的 __destruct方法 ,从而把恶意数据通过 file_put_contents 写入名为 log-$this.username ,内容为 $this.password 的文件。然后后访问index.php,接着访问check.php,即可生成木马文件,最后访问 log-$this.username 即log-test.php。这题要求$this->username!
2025-07-31 22:02:39
762
原创 ctfshow-web入门-151-170-文件上传
跟上题一样首先上传.user.ini,然后上传shell.png,上传不了,可能是php被过滤。先创建一个txt文件,在里面写入一句话木马,然后把后缀改成png,上传。第二种:不改前端,上传png文件,用bp抓包,在bp上面改。所以我们上传png木马,用bp抓包,然后改成php发包。第一种方法:前端限制了文件上传类型,我们将他改成php。.user.ini上传成功,但是shell上传失败。先创建一个.user.ini.txt,里面写。我们还是先上传.user.ini。回显 unicode 编码。
2025-05-19 22:52:55
969
原创 ctfshow-web入门-123-150_plus-php特性
正则表达式要求 f1 和 f2 只能是数字和小写字母,$f2() 被视为一个函数调用,$f1 作为函数名调用 $f2() 的返回值,最后进行弱比较,由于 'ctfshow' 转换为整数是 0,因此条件实际上是检查 intval($code) 是否为 0。isset($_GET['fl0g'])),用+来进行分隔,使得数组中有多个数值。php 扩展目录下如果有 php_gettext.dll,就可以用 _() 来代替 gettext() 函数,_() 就是 gettext() 的别名,常常被用来简化代码。
2025-05-12 22:59:17
864
原创 BaseCTF2024新生赛-web-week1,2-wp
这是一个小游戏,打开检查,在源代码里找到index.js,找到控制游戏结束的位置,看到atob部分有一串base64编码。第一步绕过:强比较绕过的方法目前只有使用数组,md5对数组的返回值为null,通过这个特性可以绕过。根据步骤修改,关于IP,用X-Forwarded-For:127.0.0.1伪造。第二步绕过:弱相等强制转换成字符串,只要字符串经过md5后是0e开头,那么两者就是相等的。方法,我们需要构造一个适当的序列化字符串。md5绕过,弱比较可以用数组或者进制绕过,强比较用数组绕过。
2025-04-21 22:17:02
2192
原创 sqctf-web-wp
根据这个描述,打开你的终端,构造一块fish牌的曲奇饼,上面刻下strong字样,便可获得强筋壮骨牌鱼食曲奇。的目标地址,是因为它是一个肯定存在且可访问的本地地址,无论本地网络实际连接状态如何,都应该能够成功。第二种方法,在控制台输入obj.score = 10000;,而第二次没有 ,要echo xxxxxxxxxx,即匹配第一个正则,不匹配第二个正则。随便输入一个账号和密码进行爆破,得到了他的账号是sqctf。是一个通配符,表示根目录下的所有文件和文件夹。右键被禁用,打开开发人员工具,查看源代码。
2025-04-16 19:21:59
850
原创 ctfshow-web入门-89-115-php特性
要得到flag,传递一个num参数,这个参数不能包含数字字符,但经过intval转换后的值为真,用数组绕过,所以payload:?第二个if,使用intval($num,0)将$num转换为整数(以 0 为进制,意味着自动判断进制),如果转换后的整数严格等于4476,则输出flag;和上一题相比,将第一个===换成了==,变成了弱等于,并且过滤了 . 小数点,这里就不能用小数过滤了,用八进制,前面加个空格,空格在转换时会被自动去除。==比较的时候会进行类型转换,而===不进行类型转换,必须严格相等。
2025-03-17 23:14:52
693
原创 ctfshow-web-78-88,116-117文件包含
过滤了rot13,base64,string等过滤器,所以这里我们用其他的过滤器,convert.iconv.*>编码,等号被过滤了,要把最后的等号删掉。. 点也被过滤了 这题要用到环境竞争,要通过session进行文件包含得到flag。把一句话木马从 UCS-2LE 编码转换为 UCS-2BE 编码。过滤了data和php,这题用hackbar不行,所以用bp。用下面这个html脚本,不会反序列化,后面学了再来。多过滤了冒号,用日志访问,先执行一句话木马。然后访问1.php,post传参,查看目录。
2025-03-09 16:51:02
1936
原创 ctfshow-web-118-122 web124命令执行
通常0表示执行成功,非0表示执行有误,有部分指令执行失败时会返回1,也有一些命令返回其他值,表示不同类型的错误,比如Command not found就会返回127。构造code=${PATH:~A}${PWD:~A}${IFS}?给出了源码,和上题差不多,过滤了很多字符等等,还限制了字符串长度,不能大于65。更多被过滤了,SHLVL也被过滤了,这里用 ${##} 或者 ${#?${#xxx}就会显示这个数值的位数,所以构造4为 ${#RANDOM}${PWD:${##}:${##}}就是从环境变量。
2025-03-07 15:25:08
991
原创 ctfshow-web-61-77-命令执行
exit(0);发现flag不在flag.php里,c=var_dump(scandir('.'));flag应该就是在flag.txt里,c=highlight_file('/flag.txt');这次在flagx.txt里,c=include("/flagx.txt");与前面几题一样同样可以用c=show_source('flag.php');没有,然后c=var_dump(scandir('/'));
2025-03-01 15:53:10
782
原创 ctfshow-web-40-60-命令执行
构造system('cat flag.php')=("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%03%01%14%00%06%0c%01%07%00%10%08%10"|"%60%60%60%20%60%60%60%60%2e%60%60%60")多过滤了sed,cut,awk,strings,od,curl,`,还是?多过滤了more,less,head,sort,tail,还是?,[a-z],`,%,\x09,\x26,>,<,多过滤了数字,$,*,构造?
2025-02-26 22:13:52
892
原创 ctfshow-web-29-39-命令执行
参数逃逸?显而易见flag在flag.php中,接着url/?include里多了php,过滤了flag,但php已经闭合了。
2025-01-27 22:30:41
1614
原创 ctfshow-web-21-28 爆破
要输出flag,就是if((!$rand))为真,要让$rand为0,即intval($r) = intval(mt_rand()),而我们令r=0,echo $rand,而此时$rand = -intval(mt_rand()),所以我们就得到了生成的随机数。token=imn(这个值可以是随便一个,我们的目的是爆破它),点add,在我们给的值的位置上加上下面这个符号,进行爆破。接着看$_COOKIE['token']==(mt_rand()+mt_rand()),两次生成的随机数种子是不一样的,
2024-12-23 22:35:53
609
原创 ctfshow-web-1-20信息收集
5.题目提示是phps泄露,在网址后加/index.phps,然后就有一个phps文件,打开如下。16.根据提示,探针造成信息泄露,找探针,访问 url/tz.php,进入到一个探针界面。找到fl000g.txt,访问此文件url/nothinghere/fl000g.txt。看到以下提示,将/robots.txt改为/flagishere.txt。9.vim信息泄露,在网址后加上/index.php.swp,打开文件。打开检查,点击网络,刷新网络,查看标头,响应标头中找到flag。
2024-12-09 00:47:52
595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅