NSSCTF 2nd复现
NSSCTF 2nd复现
这次比赛出现了不少的问题,比如权限设置的问题。比赛的时候又脑子坏了,想的太复杂,最后导致只做出了两道web两道misc,需要深刻检讨。最近是不是状态不对
1.php签到
这题想的太复杂了,基础的签到都做不出来
源码如下
123456789101112131415161718192021<?phpfunction waf($filename){ $black_list = array("ph", "htaccess", "ini"); $ext = pathinfo($filename, PATHINFO_EXTENSION); foreach ($black_list as $value) { if (stristr($ext, $value)){ return false; } } return true;}if(isset($_FILES['file ...
python pickle反序列化
python pickle反序列化
python的反序列化相对于php反序列化比较的单一,php反序列化通过不断的变量覆盖,使得各个方法之间互相调用,从而导致了恶意方法的调用,而对于python反序列化,通过恶意的构造语句,实现了的命令执行,他更加像是一种命令的注入
1.pickle序列化 把一些复杂的数据用字符串的方法储存起来,在使用的时候取出来重新反序列化就可以。
123456789import pickleclass obj: def __init__(self,str1,str2): self.str1=str1; self.str2=str2;class1=obj("str1","str2")a=pickle.dumps(class1) print(a)#输出b'\x80\x04\x95.\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x03obj\x94\x93\x94)\x81\x94}\x94(\x8c ...
php原生类
php原生类1.php原生类php为了解决一些常见的问题,存在一些基本的类提供给我们可以去使用(SPL),这是用于解决典型问题(standard problems)的一组接口与类的集合。
列出所有的内置类
12345678910111213141516171819202122 <?php$classes = get_declared_classes();foreach ($classes as $class) { $methods = get_class_methods($class); foreach ($methods as $method) { if (in_array($method, array( '__destruct', '__toString', '__wakeup', '__call', '__callStatic ...
时间盲注
时间盲注时间盲注又称延迟注入,适用于页面不会返回错误信息,只会回显一种界面(与布尔盲注类似),其主要特征是利用sleep函数或者benchmark函数让mysql执行时间变长,制造时间延迟,由回显时间来判断是否报错。
1select * from content where id = 1 and (尝试语句)
1.sleep()函数sleep(X)函数,延迟X秒后回显
2.benchmark函数benchmark是Mysql的一个内置函数,其作用是来测试一些函数的执行速度,benchmark()中带有两个参数,第一个是执行的次数,第二个是要执行的函数或者是表达式
仅支持查询单行单列的结果,如果存在单行单列的执行结果,则可以正常执行,反之则报错,执行失败。
当benchmark()内的语句运行失败时,benchmark同样执行失败。
这俩函数都是比较常见的函数,一般跟在if后面用于判断,下面是一个简单的时间盲注查询语句
123?id=1' and if(ascii(substr(database(),1,1))=115,sleep(2),0) --+或者?id=1' ...
从flask框架到模板注入
从flask框架到模板注入Flask 是一款使用 Python 编写的轻量级 Web 应用框架,它基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎。Flask 由 Armin Ronacher 开发,其目标是提供一个简单、灵活且易于扩展的框架,可以帮助开发人员快速构建 Web 应用程序。
1.第一个flask程序1234567from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run()
运行之后,在5000端口出现一个服务器
访问/路由,返回hello world
2.目录树在创建 Flask 应用时,通常会组织应用程序的代码和资源以保持良好的结构。以下是一个基本 Flask 应用的目录树示例:
123456├── app.py├── static│ └── sty ...
php反序列化初学习
php反序列化php魔术方法1、__get、__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的 __get( $property ) 当调用一个未定义的属性时访问此方法 __set( $property, $value ) 给一个未定义的属性赋值时调用 这里的没有声明包括访问控制为proteced,private的属性(即没有权限访问的属性)
2、__isset、__unset __isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法 __unset( $property ) 当在一个未定义的属性上调用unset()函数时调用此方法 与__get方法和__set方法相同,这里的没有声明包括访问控制为proteced,private的属性(即没有权限访问的属性)
3、__call __call( $method, $arg_array ) 当调用一个未定义(包括没有权限访问)的方法是调用此方法
4、__autoload __autoload 函数,使用尚未被定义的类时自动调用。通过此函数,脚本引擎在 PHP 出错失败前有了最 ...
sql注入 入门
sql注入学习学习笔记
mysql增删查改1.基础12345mysql -u root -p 输入密码//登录show databases;#查询所有的数据库use database_name;#修改//进入所在库exit;#退出所在的库
2.查询1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556查询当前库内包含的表mysql> show tables;+----------------+| Tables_in_dvwa |+----------------+| guestbook || users |+----------------+查询表内的所有列mysql> select * from guestbook;#当前库内的表+------------+-------------------------+------+| comment_id | comment ...
php简单审计 入门
奇奇怪怪的get和post1.md5碰撞 [SWPUCTF 2021 新生赛]easy_md51234567891011121314151617<?php highlight_file(__FILE__); include 'flag2.php';if (isset($_GET['name']) && isset($_POST['password'])){ $name = $_GET['name']; $password = $_POST['password']; if ($name != $password && md5($name) == md5($password)){ echo $flag; } else { echo "wrong!"; }}else { echo ' ...