Less4
输入单引号,页面无任何变化,
输入双引号,页面报错,
根据报错信息判断出咱们输入的内容被放到一队双引号和圆括号中,以此为依据开始注入less4.png
Less5
使用聚合函数进行双注入查询时,会在错误信息中显示一部分错误信息。
比如count函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来。less5.png
Less6
双引号字符型注入,上一题的单引号改成双引号就可以了,同样是两种方法:时间延迟型的手工盲注、报错型的手工盲注或者sqlmap,再有利用concat()几聚合数。less6.png
Less7
题目已经提示,use outfile,分析闭合方式,单引号报错,所以闭合方式为单引号,写出phpless7.png
Less8
过程和第五关类似
less8-1.png
less8-2.png
less8-3.png
Less9
因为输入字符没有回显提示,判断使用sleep函数
使用sleep,缓冲很久才出来You are in,说明SQL语句被解析,存在SQL注入,引入if()函数,配合sleep()函数使用less9-1.png
less9-2.png
Less10
类似第九关,闭合方式改为双引号LESS10.png
Less11
通过burp抓包
使用特殊符号发现服务器出现语法错误
直接通过万能密码注入,之后通过uname和union进行注入
LESS11.png
less11-1.png
Less12
闭合方式为双引号括号”)
less12-1.pngless12-2.png
Less13
利用漏洞用单引号括号,发现没有反应,改盲注,类似第五关
less13-1.png
Less14
闭合方式变为双引号,类似十三关
less14.png
Less15
尝试通用符号后发现没有反馈,通过sleep函数发现服务器在反应,确定闭合方式为单引号
less15-1.png
Less16
将15关的单引号改为双引号
Less17
尝试特殊符号没有反馈,通过利用报错函数来获取信息,less17-1.png
less17-2.png
less17-3.png
Less18
输入用户名密码admin返回代理信息
通过useragent注入less18.png
Less19
输入用户名密码显示your refer可知题目换了字段
类似十八关less19.png
Less20
使用admin登陆后发现有cookie
发现cookie字段存在注入点20-2.png

一、注入六连:

  1. sqlmap -u “http://www.xx.com?id=x" 查询是否存在注入点
  2. --dbs         检测站点包含哪些数据库
    
  3. --current-db    获取当前的数据库名
    
  4. --tables -D "db_name"  获取指定数据库中的表名 -D后接指定的数据库名称
    
  5. --columns  -T "table_name" -D "db_name"  获取数据库表中的字段
    
  6. --dump -C "columns_name" -T "table_name" -D "db_name"  获取字段的数据内容
    

二、COOKIE注入:
sqlmap -u “http://www.xx.com?id=x" –cookie “cookie” –level 2 cookie注入 后接cookie值

三、POST注入:
(1)目标地址http:// www.xxx.com /login.asp
(2)打开brup代理。
(3)点击表单提交
(4)burp获取拦截信息(post)
(5)右键保存文件(.txt)到指定目录下
(6)运行sqlmap并执行如下命令:
用例:sqlmap -r okay.txt -p username
// -r表示加载文件(及步骤(5)保存的路径),-p指定参数(即拦截的post请求中表单提交的用户名或密码等name参数)
(7)自动获取表单:–forms自动获取表单
(8)指定参数搜索:–data
四、常用指令:

  1. –purge 重新扫描(–purge 删除原先对该目标扫描的记录)
  2. –tables 获取表名
  3. --dbs         检测站点包含哪些数据库
    
  4. --current-db    获取当前的数据库名
    
  5. --current-user  检测当前用户
    
  6. –is-dba 判断站点的当前用户是否为数据库管理员
  7. –batch 默认确认,不询问你是否输入
  8. –search 后面跟参数 -D -T -C 搜索列(C),表(T)和或数据库名称(D)
  9. –threads 10 线程,sqlmap线程最高设置为10
  10. –level 3
    sqlmap默认测试所有的GET和POST参数,当–level的值大于等于2的时候也会测试HTTPCookie头 的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高为5
  11. –risk 3
    执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全
  12. -v   详细的等级(0-6)
      0:只显示Python的回溯,错误和关键消息。
      1:显示信息和警告消息。
      2:显示调试消息。
      3:有效载荷注入。
      4:显示HTTP请求。
      5:显示HTTP响应头。
      6:显示HTTP响应页面的内容
    
  13. –privileges 查看权限
  14. –tamper xx.py,cc.py 防火墙绕过,后接tamper库中的py文件
  15. –method “POST” –data “page=1&id=2” POST方式提交数据
  16. –threads number  采用多线程 后接线程数
  17. –referer “” 使用referer欺骗
  18. –user-agent “” 自定义user-agent
  19. –proxy “目标地址″ 使用代理注入

一、SQL注入简介
Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。
当我们访问动态网页时, Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句,如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。
二、SQL注入的危害

  • 猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
  • 绕过认证,列如绕过验证登录网站后台。
  • 注入可以借助数据库的存储过程进行提权等操作。

SQL注入练习
less-1
首先,构造?id=1 ’,报错,可以确定注入点类型。
1.png
然后判断字段数order by 3的时候正常,order by 4的时候报错,那证明字段就是3个。
2.png
通过union操作查询数据库名
?id=0’ union select 1,database(),3 –+
3.png
然后通过数据库名可查询表名
?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=”security”–+
在此基础上很容易获得user表和password
5.pngpw.png

less-2
首先构造?id=1’–+发现报错,不是字符类型
uTools_1648180946285.png
然后判断字段数
?id=1 order by 3 –+
6.png
然后构造?id=1 union select 1,2,3 –+
发现注入点,接下来的操作跟上一题一样

less-3
首先,构造一下
?id=1’,
10.png
报错,通过)闭合,构造,确定字段数为3,之后操作相同
?id=1’) order by 3 –+
11.png

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的一端称为服务器端。
在计算机术语中,会话是指一个终端用户与交互系统进行通讯的过程,比如从输入账户密码进入操作系统到退出操作系统就是一个会话过程。会话较多用于网络上,TCP的三次握手就创建了一个会话,TCP关闭连接就是关闭会话。

HTTP的特点:

  1. HTTP协议本身是无状态的
  2. http协议无法记录用户经常上哪些网站,有什么爱好,也无法记录用户的ID账号和密码,这就是无状态
  3. HTTP协议本身是无状态的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要记录彼此过去的行为,每一次请求之间都是独立的
  4. HTTP协议自身不具备保存之前发送过的请求或相应的功能

Cookie是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。
四种会话跟踪技术(URL重写、隐藏表单域、Cookie、Session)
服务端技术:URL重写,Session,Cookie。
客户端技术:Cookie,隐藏表单域。

  1. Cookie是由http协议制定,javaee,android,php,.net,ios等
  2. Cookie中的数据是有大小限制,不能存储大量数据。(4kb)
  3. 一个浏览器存储的cookie也是有上限。(300个左右)
  4. 一个网站在浏览器上存储的cookie也是有上限。(30个左右)
  5. 不同浏览器的cookie不同的。
  6. cookie中不能直接存储中文。
  7. SetCookie()之前不能有任何html输出,空格,空白行都不行
  8. SetCookie()之后,在当前页调用echo $_COOKIE[“name”]不会有输出,必须刷新或到下一个页面才可以看到Cookie值
  9. Cookie是保存在客户端的,如果用户禁用了Cookie,那么Cookie也就失效了
  10. Cookie的生命周期到了,Cookie就会失效
  11. 设置一个Cookie时失效时间为time()那么在页面浏览完之后就被删除

create database name; 创建数据库
use databasename; 选择数据库
drop database name; 直接删除数据库,不提醒
show tables;显示表
describe tablename; 表的详细描述
select 中加上distinct;去除重复字段
mysqladmin drop databasename; 删除数据库前,有提示。
select version(),current_date;显示当前mysql版本和当前日期
show databases;显示所有数据库
use dbname;选定默认数据库
show tables;显示默认数据库中所有表
\c;放弃正在输入的命令
\h;显示命令清单
\q;退出MySQL程序
\s;查看MySQL服务器状态信息

分类 说明 数据类型 作用
二进制数据类型 存储非字符和文本的数据 BLOB 可用来存储图像
文本数据类型 字符数据包括任意字母、符号或数字字符的组合 char 固定长度的Unicode字符数据
varchar 可变长度非Unicode数据
text 存储长文本信息
日期和时间 日期和时间在单引号内输入 time 时间
date 日期
datetime 日期和时间
数据型数据 该数据仅包含数字,包括正数,负数以及浮点数 int、smallint 整数
float、double 浮点数

整型
(1) tinyint
一个字节 有符号(-128 ~ 127 ) 无符号(unsigned) ( 0 ~ 255 ) 小整数值
(2) int
四个字节 有符号(-21亿 ~ 21亿 左右 ) 无符号(unsigned) ( 0 ~ 42亿) 大整数值
浮点数
(1) float ( 255 , 30 ) 单精度
(2) double ( 255 , 30 ) 双精度
(3) decimal( 65 , 30 ) 金钱类型,使用字符串对的形式保留小数
字符串
(1) char 字符长度 255 个
(2) varchar 字节长度 21845 个 (总字节数不超过 65535 )
(3) text 文本类型,论文,小说等
枚举和集合
(1)枚举
enum枚举: 从列出来的数据当中选一个
(2) 集合
set集合: 从列表中选多个(自动去重)
时间日期
(1) 年月日
date YYYY-MM-DD 年月日
(2) 时分秒
time HH:MM:SS 时分秒
year YYYY 年份值
(4) 年月日 时分秒

一、判断普通文件和目录

  1. is_file(); 判断给定的文件名是否为一个正常的文件
  2. is_dir(); 判断给定的文件名是否为一个目录

二、文件的属性
1.file_exists(); 检查文件或目录是否存在
2.filesize(); 取得普通文件的大小
3.is_readable(); 判断给定的文件名是否可读
4.is_writable(); 判断给定的文件名是否可写
5.filectime(); 获取文件的创建时间
6.filetime(); 获取文件的修改时间
7.fileatime(); 取得文件上次访问时间
8.stat(); 获取文件大部分属性值

三、目录的基本操作
1.basename(); 返回路径中的文件名部分
2.dirname(); 返回路径中的目录部分
3.pathinfo(); 返回文件路径信息
4.opendir(); 打开目录句柄
5.readdir(); 从目录聚丙种读取条目,返回目录中下一个文件的文件名
6.rewinddir(); 倒回目录句柄
7.closedir(); 关闭目录句柄
8.mkdir(); 新建目录
9.scandir(); 列出指定路径中的文件和目录

四、文件的基本操作
1.fopen(); 打开文件或者URL
2.fread(); 读取文件
3.fgets(); 从文件指针中读取一行
4.feof(); 测试文件指针是否到了文件结束的位置
5.fwrite(); 写入文件
6.rewind(); 到会文件指针的位置
7.flock(); 轻便的咨询文件锁定
8.ftruncate(); 将文件截断到给定的长度
9.fclose(); 关闭一个已打开的文件指针
10.file(); 把整个文件读入一个数组中
11.copy(); 拷贝文件
12.unlink(); 删除文件
13.file_get_contents(); 将整个文件读入一个字符串
14.file_put_contents(); 将字符串写入文件中
15.rename(); 重命名一个文件或目录
16.readfile(); 读入一个文件并写入到输出缓冲

第一步:
连接MySQL服务器
使用 mysql_connect() 函数建立与MySQL服务器的连接
第二步:
选择MySQL数据库
使用 mysql_select_db() 函数选择MySQL数据库服务器上的数据库,并与数据库建立连接
第三步:
执行SQL语句
在选择的数据库中使用mysql_query() 函数执行SQL语句。

对数据的操作方式主要包括四种方式:
查询数据:使用select语句实现数据的查询功能
插入数据:使用insert into语句向数据库中插入数据
更新数据:使用update语句修改数据库中的记录
删除数据:使用delete语句删除数据库中的记录

操作系统分类:
类Unix:Linux,Mac OS等
Windows:Windows PC,Windows Server等
Windows PC常见的有XP、Win7、Win10
Windows Server主要用于搭建服务器

操作系统功能:
进程管理:进程调度、进程分配、进程回收
存储管理:存储分配、存储共享、存储保护、存储扩张
设备管理:设备分配、设备传输控制、设备独立性
文件管理:文件存储空间管理、目录管理、文件操作管理、文件保护
作业管理是负责处理用户提交的任何要求

网络安全法
《中华人民共和国密码法》
《中华人民共和国数据安全法》
《个人信息保护法》
《网络安全法》
《中华人民共和国刑法》

Linux常用命令
关机
shutdown -h now 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销
文件和目录
cd /home 进入 ‘/ home’ 目录’
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 ‘file1’ 的文件’
rmdir dir1 删除一个叫做 ‘dir1’ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
文件搜索
find / -name file1 从 ‘/‘ 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件