BJDCTF2020
BJDCTF2020ezphp进入页面提示flag不在这里,f12发现真正的页面在1nD3x.php,然后就是源码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051<?phphighlight_file(__FILE__);error_reporting(0); $file = "1nD3x.php";$shana = $_GET['shana'];$passwd = $_GET['passwd'];$arg = '';$code = '';echo "<br /><font color=red><B>This is a very simple challenge and if you solve it I will give you a flag. Good Luck!</B>< ...
NSSCTF
关于NSSCTF中一些web杂题[NISACTF 2022]level-up1234567891011121314<?php//sorry , here is true last level//^_^error_reporting(0);include "str.php";$a = $_GET['a'];$b = $_GET['b'];if(preg_match('/^[a-z0-9_]*$/isD',$a)){ show_source(__FILE__);}else{ $a('',$b);}
前面简单的绕过,之谈最后一步,这里遇到$a('',$b);这样一个奇怪的步骤,由于$b前面有内容,直接命名代码执行显然行不通,那么这里就是很典型的代码注入绕过(create_function注入),如:
12<?php$c=create_function('$left,$right',' ...
SHCTF2023一些题目的思考
关于SHCTF一些题目的思考webMD5的事就拜托了源码:
12345678910111213141516171819202122<?phphighlight_file(__FILE__);include("flag.php");if(isset($_POST['SHCTF'])){ extract(parse_url($_POST['SHCTF'])); if($$$scheme==='SHCTF'){ echo(md5($flag)); echo("</br>"); } if(isset($_GET['length'])){ $num=$_GET['length']; if($num*100!=intval($num*100)){ echo(strlen($flag)); ...
关于php序列化与反序列化
关于PHP序列化与反序列化什么是PHP序列化与反序列化12serialize() //将一个对象转换成一个字符串unserialize() //将字符串还原成一个对象
序列化与反序列化方便了对象数据的传递,但是攻击者可以通过构造序列化字符串以控制反序列化,形成反序列化攻击:
12345678910111213<?phphighlight_file(__FILE__);class sunset{ public $flag='flag{asdadasd}'; public $name='makabaka'; public $age='18';}$ctfer=new sunset(); //实例化一个对象echo serialize($ctfer);?>//O:6:"sunset":3:{s:4:"flag";s:14:"flag{asdadasd}";s:4: ...
SWPU2023 web
SWPUCTF2023 webcolorful_snake直接进入game.js,在函数this_is_real_flag()里,Unescape Unicode Characters解码
NSS_HTTP_CHEKER根据要求传值:
12345678910111213141516POST /?this_is_get=get_%1t HTTP/1.1Host: node6.anna.nssctf.cn:28510User-Agent: NSSCTFAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 17Origin: ht ...
关于强比较与弱比较的区别
关于强类型比较与弱类型比较区别== 弱类型比较123456789与数字进行比较时,从数字开始截断至遇到第一个字母"88"==88 //true"88aa"==88 //true"aa88"==88 //false"aa88"==0 //false与判断符比较时,除0外都为true“aaa”==true //true111==true //true0==true //false
弱类型只会比较参数的值(传入参数时,会将参数转化为同一类型),也就是说,如果是md5($a)==md5($b),那么传入的a、b只会比较转化为md5后的值,此时可以有以下绕过:
传入数组,因为在传入数组时,md5函数会直接返回false,false=false成立
传入的字符串md5加密后为0e……,在进行弱比较时,将0e……转化为数字后,会被认为是科学计数法,而0e……的科学计数法表示的数为0,也就是0==0成立
=== 强类型比较强类型比较不仅会 ...
0xGame2023 web
0xGame 2023week1signin
baby_php
先是md5弱比较绕过,两个的md5值都为0即可,然后传入的c要三个条件:
不是数字(添加其他字符绕过)
不等于1024(添加小数绕过)
取整等于1024(整数部分等于1024即可)
然后就是文件包含,通过php伪协议读取flag。
hello_http
repo_leak目录扫描,发现了.git泄露,用工具GitHack失败,利用 Git_Extract 拿到目录:
ping首先将前端限制删除,然后通过提示找到/api.php?source:
后面测试了一下,空格用${IFS}是可以的,不知道最开始做的时候为什么不行。
1234567891011121314151617181920" " -> %09 ${IFS}";" -> %0a常用管道符(windows):“|”:直接执行后面的语句。如:ping 127.0.0.1|whoami“||”:如果前面执行的语句出错泽执行后面的语句,前面的语句智能为假 如:ping 2 ...
moectf2023 web
moectf2023 webhttp题目:
123456789this is GET method,your mission:1.use parameter: UwU=u2.post **form**: Luv=u3.use admin character4.request from 127.0.0.15.use browser 'MoeBrowser'Complete All Missions
根据题目满足这些要求即可,payload:
12345GET:?UwU=uPOST:Luv=ucookies:character=adminX-Forwarded-For: 127.0.0.1User-Agent:MoeBrowser
web入门指北直接下载附件,附件最后有一串16进制的密码,先hex解码,在base64解码,得到flag
彼岸的flag提示在聊天记录中,翻看聊天记录,发现有一条撤回的消息很可疑,F12查看这条消息:
cookie下载附件,提示用post-json方式传值注册登录,get方式读取flag,先传值登录试试:
读取flag:
提示不是管 ...
NewStarCTF2023 web
NewStarCTF webweek1泄露的秘密直接用disearch扫描,拿到robots.txt和www.zip,拼接得到完整的flag
flag{r0bots_1s_s0_us3ful_4nd_www.zip_1s_s0_d4ng3rous}
Begin of Upload先创建txt文件,写入一句话木马,在上传时得知,只允许图片形式,将文件改为jpg图片后缀,上传时,抓包,改包,如下:
然后用蚁剑进入后门即可:
在这个文件中得到flag,flag{2e5dd867-8ece-4cfd-9044-3ebf96f1558c}
Begin of HTTP根据提示一步一步来,需要注意的是最后的本地访问时,X-Forwarded-For失效,下面的伪造头一个一个试:
123456789101112131415161718192021222324252627282930313233343536373839404142X-Forwarded-For:127.0.0.1 X-Forwarded:127.0.0.1 Forwarded-For:127.0.0.1 Forwarded:127. ...