sqli-lab通关笔记
MySQL数据结构对于mysql数据库5.0以上版本的自带的数据库information_schema
下面有两个表:tables和columns。
tables
table_name字段下:所有数据库存在的表名
table_schema字段下:所有表名对应的数据库名
columns
column_name字段下是所有数据库存在的字段名
columns_schema字段下是所有表名对应的数据库
GETError basedLess-1 single quote
判断是否存在注入
1Less-1/?id=1' -- a
1Less-1/?id=1' and 1=2 -- a
通过页面回显可判断:字符型注入。
联合注入 判断字段长度
1Less-1/?id=1' order by 3 -- a
试到order by 4时出现报错,即共有3列。
补充内容:SQL Union
SQL Union用于将多个select结果集进行合并。值得注意的是,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每 ...
安装笔记(Flask,docker+wsl)
Flask安装安装pip.exe文件1python -m ensurepip
安装flask1pip install flask
报错
12345note: This error originates from a subprocess, and is likely not a problem with pip.error: subprocess-exited-wi th-error× pip subprocess to install build dependencies did not run successfully.exit code: 2 → See above for output.
错误原因:缺少了两个依赖的库
解决
12pip install pyinstallerpip install wheel
重新运行pip install flask命令,成功。
创建虚拟环境创建flask文件夹,在命令行中进入这个目录后创建venv文件夹并激活解释器
12python -m venv venvvenv\Scripts\activate
1(venv) $ pip ...
Python基础知识(自存)
Python基础知识基础语法交互式编程Linux :在命令行中输入 Python 命令即可启动交互式编程
Windows 在安装 Python 时已安装了交互式编程客户端
脚本式编程所有 Python 文件将以 .py 为扩展名。
Python2.x 中使用 Python3.x 的 print 函数如果 Python2.x 版本想使用 Python3.x 的 print 函数,可以导入 future 包,该包禁用 Python2.x 的 print 语句,采用 Python3.x 的 print 函数
123456789101112>>> list =["a", "b", "c"]>>> print list # python2.x 的 print 语句['a', 'b', 'c']>>> from __future__ import print_function # 导入 __future__ 包> ...
PHP反序列化学习笔记
PHP反序列化概念php程序为了保存和转储对象,提供了序列化的方法。php序列化是为了在程序运行的过程中对对象进行转储而产生的。序列化可以将对象转换成字符串,但仅保留对象里的成员变量,不保留函数方法。
php序列化的函数为serialize,可以将对象中的成员变量转换成字符串。
反序列化的函数为unserilize,可以将serialize生成的字符串重新还原为对象中的成员变量。
将用户可控的数据进行了反序列化,就是PHP反序列化漏洞。
序列化的目的是方便数据的传输和存储。
在PHP应用中,序列化和反序列化一般用作缓存,比如session缓存,cookie等。通过序列化与反序列化我们可以很方便的在PHP中进行对象的传递。
前置知识序列化的字母标识12345678910111213a - arrayb - booleand - doublei - integero - common objectr - references - stringC - custom objectO - classN - nullR - pointer referenceU - unicode stringN ...
XSS跨站脚本攻击笔记
XSS跨站脚本攻击即在受害者的浏览器中注入恶意脚本
1.存储型XSS代码储存到服务器中,用户访问该页面的时候触发代码执行。
存储型XSS的数据流通:恶意代码通过交互界面上传到后端数据库→管理员admin查询数据库的信息→恶意脚本从后端传到前端
典例:留言板XSS。用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,留言内容会从数据库查询出来并显示,浏览器发现XSS代码,当做正常的HTML与Js解析执行,于是触发XSS攻击。
2.反射型XSS欺骗用户点击链接触发XSS代码,盗取用户的Cookie信息。
反射型XSS的数据流通:在<input>标签形成的输入框里输入恶意脚本→用户触发,后端接收,进行攻击→显示在前端
3.DOM-XSS不经过后端通过url传入参数去控制触发,属于反射型XSS,即在前端url添加恶意脚本后直接在页面输出
插入位置/攻击对象1.HTML注释内容12345<!-- <script> alert('xss');</script>-->
2.HTML标签属性值12< ...
MySQL学习笔记
MySQL数据库模型创建数据库在MySQL中,可以使用CREATE DATABASE或CREATE SCHEMA语句创建数据库
语法格式:db_name 数据库命名
CHARACTER SET 指定字符集
COLLATE 指定字符集的校对规则
IF NOT EXISTS MySQL不允许同一个系统使用2个数据库相同的名字,因此需要加上IF NOT EXISTS从句,可避免错误的发生。
1CREATE DATABASE [IF NOT EXISTS] db_name CHARACTER SET charset_name COLLATE collation name;
实例:创建一个名字为blog的数据库,指定字符集为utf8mb4(关键字:CHARACTER SET),指定字符集的校对规则(关键字:COLLATE),加上从句IF NOT EXISTS
1CREATE DATABASE IF NOT EXISTS blog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
选择数据库在MySQL中,使用USE语句可以实现 ...