- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 10_上传漏洞_代码审计&文件命名
许多文件上传的题型都涉及代码审计,个人认为这类题型有一定复杂性,同时这也是我不太擅长的点,因此本章节将结合先前博文中介绍过的上传漏洞,先总结出一些解题过关时需要注意的要点,再通过upload-labs-pass 19进行案例演示。就像去吃火锅调酱料一样,为了调配出自己喜欢的口味,顾客会将多种酱料混合。对于文件上传检测也是这样,往往过滤函数检查的位置不止一处,因此我们在修改数据包进行绕过操作时,需要注意修改的位置有时不止一处,尤其是对MIME类型的检测不可忽略,代码案例如下所示:notice2:“黑名单”思
2022-07-04 23:11:42
911
3
原创 09_上传漏洞_文件包含&二次渲染&代码逻辑漏洞
【本篇博客不对文件包含展开】正如前篇博客所述,白名单是一种极好的过滤方式,虽然php、asp代码中常常可以用00截断的方式绕过白名单过滤,但在服务器高版本的情况下,截断技术也会失效。那么这种情况下是否就没有思路进行渗透了呢?并不是,一种情况是出现了文件包含漏洞,也就是说这里上传的文件是合法的,但是其中含有恶意代码。存在文件包含漏洞漏洞前提下,合法文件可以通过某种方式作为脚本执行。当然本篇博客的内容重点不在于文件包含,安排这个板块的目的在于强调:漏洞的存在不是互斥的。因此,实战中对于漏洞的利用需要考虑“打组合
2022-06-26 12:11:27
1272
原创 08_上传漏洞_初识_前后端绕过&靶场案例
许多网站会设计用户上传功能,例如大多数网站存在会员机制,会员可以上传图片作为自己的头像。这样的上传功能中往往会做限制(如只允许上传图片格式),试想,某些攻击者如果绕过了上传限制,通过上传功能将恶意脚本(远程控制等)发送至服务器,那么服务器资源将会遭受威胁。可见,文件上传本身是一个常见功能,只有在设计不得当时才会是一个漏洞。因此,当系统存在文件上传功能时,就有一定的可能性存在上传漏洞。上传漏洞和先前介绍的SQL注入漏洞一样,都属于高危漏洞。绕过上传限制后,攻击者可以上传后门脚本进而获取服务器权限,内网权限等,
2022-06-19 12:38:29
1254
原创 Python渗透编程01_Nmap&Scapy上车
熟悉渗透测试业务的小伙伴想必对Nmap和Scapy两款工具不陌生。Nmap在安全技术发展历史的长河中无疑画上了浓墨重彩的一笔,几乎所有使用过该工具的学习者都惊叹于这款工具具备的强大扫描功能。它能够对目标进行探测,以审计其安全性,目前已经成为几乎所有安全从业者和学习者手中必备工具之一。而Scapy工具就更加接近于底层了,我们可以通过这个模块实现数据包的发送、接收和解析,与nmap不同,Scapy工具仅仅只是返回相应的数据包,而返回结果的含义需要测试者自行分析,因此对于Scapy的使用,需要测试者具备扎实的网络
2022-06-12 18:41:44
1524
原创 07_SQL注入_堆叠注入&绕过注入
谈及堆叠,顾名思义:就是多条语句一同执行。实际开发中,部分数据库支持多条SQL语句同时执行,在这样的场景下进行SQL注入,我们是否能够在payload中构造多条可执行语句呢?当然可以。SQL语句中“;”代表了一条语句的结束,在写入payload时只需要用“;”分割多条语句,在限制不到位的情况下就可以自定义执行多条语句,案例如下:假设数据库中存在表users如果恶意用户将参数人为构造成:垓参数与SQL语句进行拼接,就会变为:一旦恶意代码被执行,users表就会被删除通过上述案例,不难发现,对比与联合查询un
2022-06-03 17:54:58
1359
原创 07_《计算机安全原理与实践》数据安全随笔
07_《计算机安全原理与实践》数据库随笔1.数据库安全面临的挑战对于一个群体而言(可以是任意的组织、机构),数据库是用于存储敏感数据的媒介。实际运用中,这些数据的访问对于业务开展至关重要。因此,这些敏感信息就成为了敌手(可能来自内部,也可能来自外部)的目标,稍有不慎,针对这些敏感信息的恶意攻击就会造成无法挽回的损失。可见,数据库安全至关重要。信息安全的发展是一个攻防相互促进,在竞争中发展的过程。作为信息安全的重要组成部分,数据安全与数据运用发展也是不匹配的,具体如下:DBMS的复杂程度不断增加,配
2022-05-27 17:21:58
523
原创 06_SQL注入_二次注入&加密解密
06_SQL注入_加密注入&二次注入1.加密注入SQL注入的思路是用户用自定义语句和原本的SQL语句拼接,但有时开发者会对获取到的数据进行加密,那么对于渗透测试者而言如果想要在这样的情况下进行操作,则需要将自己的注入语句进行相同的加密处理后与原本的语句进行拼接。这种类型的大体思路和先前的思路整体无异,唯一的区别就是需要测试者先写好payload,再进行加密,随后将数据包放出进行注入尝试。加密类型的注入在SQLi-Labs中得到了复现,实验如下:【靶场】SQLi-Labs less-21【
2022-05-18 22:33:36
1107
原创 06_《计算机安全原理与实践》访问控制
06_《计算机安全原理与实践》访问控制1. 访问控制原理【访问控制的概念】不同机构对访问控制的定义是不同的,广义角度上来说,访问控制与所有的计算机安全相关领域密切相关(以sql注入为例,如果发现当前注入网站的数据库用户拥有root权限,那么就可以进行许多高权限操作)。具体来说,访问控制思想可以分成两个方面:1.对于资源来说:指定对于一个具体的资源可以被哪些实体访问;2.对于实体而言:某个具体的实体对象可以访问哪些资源。【访问控制的基本元素】我们将主体、客体和访问权称作访问控制的基本元素。主体:
2022-05-08 12:13:44
2260
原创 05_SQL注入_功能语句&报错注入&盲注
05_SQL注入_功能语句&报错回显&盲注1. SQL 语句和网站功能1.1 Web开发中常见语句【本章代码来源于pikachu和sqli-lab中的靶场】开发中,根据不同的需求,开发者会采用不同SQL语句与数据库进行交互,渗透测试人员在采用黑盒测试的情况下,根据不同的功能猜测对应语句进行注入是一项必备能力。1. select查询语句select 往往用于网站需要显示查询的操作,考虑如下代码,'name’可以直接拼接到sql语句中,且能够进行回显,那么思路就是可回显注入的一般思路
2022-05-07 21:38:43
1054
原创 04_SQL注入_其他数据库&工具的入门
04_SQL注入_其他数据库&工具的入门1. sqlmap 入门前几篇博文主要是以手工方式进行注入,本篇博文简要介绍注入工具的使用。需要注意,工具的使用只是一定程度上提供了便利,并不能完全取代工具,实战中很少存在全自动操作,配合工具半自动操作,或是根据业务自主编写脚本才是可取之法,对于渗透工具的使用和手工操作无非是用筷子吃饭和用叉子吃饭的区别。在使用工具时,也存在一定的限制。信息行业日新月异,工具开发者也不能做到面面俱到,以sqlmap为例,其目前支持的数据库有 MySql、Oracle、Ac
2022-05-01 16:34:39
2202
原创 05_《计算机安全原理与实践》用户认证
05_《计算机安全原理与实践》用户认证前言NIST SP 800-63-3 将用户认证定义为:信息系统对用户电子式提交的身份建立信任的过程。系统根据用户提交的认证信息判断用户是否被授权使用系统的某些资源。举个例子,在使用window系统时需要输入pin来登录设备,获得pc的使用权。本章将简要罗列用户验证的相关原理,对书中留下的主要问题进行简要讨论。1.认证方法和风险评估1.1 四种认证方法计算机系统主要基于四种方法对用户进行认证:1.个人所知道的信息:可以是个人标识码或口令,或是关于预设问题的应
2022-04-30 19:51:59
1712
原创 03_SQL注入_数据类型&提交注入
03_SQL注入_数据类型&提交注入1.闭合符号型网页开发中,常见的数据交互类型有数字型和字符串型,此外JSON作为一种以键值对进行数据交互的方式也大量出现在开发者的视野当中。数据类型不同的情况下,手工注入时需要根据不同的数据类型闭合符号,来达到判断注入的目的。考虑如下两段PHP代码代码1:$id=$_GET['id'];$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";$result=mysql_query($sql);$row =
2022-04-24 23:10:25
2425
原创 02_SQL注入_Mysql注入_高权限操作&数据读写&简单的防护策略
02_SQL注入_Mysql注入_高权限操作&数据读写&简单的防护策略1.root权限&开发中的权限设置在实际开发中往往会出现一个网站对应一个数据库,而一个数据库对应一个特定管理员的情况。(假设情景中,开发使用的数据库都是Mysql数据库)。考虑第一个情景:比如A网站对应数据库A,而数据库A对应管理员A,如果存在注入点的情况下,测试出是数据库管理员A的权限在操作该网站数据库A,那么在不获取更高级权限的情况下,只能进行对本网站数据库A的本站注入操作。考虑第二个情景:B网站和C网站部
2022-04-20 22:36:43
2585
原创 04_《计算机安全原理与实践》密码编码工具(下)
04_《计算机安全原理与实践》密码编码工具(下)含本章理论性习题解答前言本专栏上一篇博文介绍了消息认证的机理和非对称加密体系,从实际应用角度,二者是不可分割的。本章将在上一章的基础上进行延申,主要介绍非对称加密体系在数字签名和密钥管理方面的应用。1.数字签名 当谈及这个话题,实际上有炒冷饭的嫌疑,本质上来说就是前篇博客中提到利用非对称加密技术的消息认证。以现实中的写信为例,写完信后写信者会签上自己的名字,而收信人可以根据信件上的签名字迹判断是写信者本人签名还是他人伪造的签名。在计算机通信中也存在
2022-04-17 22:45:20
1633
原创 01_SQL注入_Mysql注入利用联合查询的手工注入
01_SQL注入_Mysql注入:利用联合查询的手工注入1.SQL注入的成因【严正声明】仅供学习,勿做他用!!!【严正声明】仅供学习,勿做他用!!!【严正声明】仅供学习,勿做他用!!!遵纪守法,做合格网民!!!!开发过程中,一些开发者会直接将URL的参数,POST方法的参数等一些列外来输入的参数拼接到SQL语句中。上述做法会造成SQL语句的可控,从而使得测试者能够通过执行SQL语句,实现一些自定义操作。$id=$_GET['id'];$fp=fopen('result.txt','a');
2022-04-16 23:02:29
3877
原创 03_《计算机安全原理与实践》密码编码工具(中)
03_《计算机安全原理与实践》密码编码工具(中)前言【前篇回顾】在上一篇博客中,简要介绍了对称加密算法的工作机制、常见的对称加密算法、并讨论了分组密码和流密码的联系和区别。需要注意:关于分组密码和流密码,书中有一段描述,现将其概括如下:从工作机制上看,似乎流密码更适合数据流加密/解密的场景(数据流在信道中的传输,或者是网页请求),但是在实际应用中无论是流密码还是分组密码都可以用在任何形式的应用场景中。【题外话】本篇开始,由于原著实体书已经到手,为保证行文流畅性,所以不再加入原著PPT译读。【本篇
2022-04-15 00:34:46
923
原创 02_《计算机安全原理与实践》密码编码工具(上)
02_《计算机安全原理与实践》密码编码工具(上)前言【一个讨论】前一篇博客中有提到信息安全行业的三个问题:”Q1.我们需要保护什么样的资产?Q2.这些资产是如何受到威胁的?Q3.我们应当做些什么来应对这些威胁?“;关于Q3,私信中有这样的疑惑,前一篇博客中举例:从管理人员角度,他们则会思考如何预防入侵,如何在入侵发生后使得资源损失最小化。这个例子中为何管理人员还要考虑入侵发生过后,损失最小化的问题,难道不能设计一个周全的安全机制?对于这个问题,其实也是涉及两派观点,曾经一派认为存在一个绝对安全
2022-04-10 23:15:42
1540
原创 01_《计算机安全原理与实践》概述随笔
01_《计算机安全原理与实践》概述部分随笔前言本章讨论的是一些通识性的知识,主要围绕的是贯穿信息安全行业的三个基本问题,这里引用原文:”Q1.我们需要保护什么样的资产?Q2.这些资产是如何受到威胁的?Q3.我们应当做些什么来应对这些威胁?“举个例子来理解这三个问题:假定我们的目标是个网站,那么网页中的数据、服务器资源、后台用户数据等等一系列资源都是我们想要保护的资产(Q1)。那么从web安全的角度上,敌手(adversary)会从中间件到搭建平台,从CMS到操作系统详尽的对站点进行信息收集寻找漏
2022-04-06 23:45:46
1552
原创 推荐系统数据生成
利用Python代码生成测试数据最近一直着手在做的推荐系统项目几近结题。对于学生而言,刚接手这个项目的时候确实迷茫。班导师刚联系我的时候,顿时素质三连:推荐系统是啥?这有啥用?我做这个东西干啥?以上三个问题,后期寒假会补上。这篇文章更多的是介绍如何利用python语言,便利的生成一些测试数据。这里有人可能会发问:测试数据用公测数据集不就行了?确实,当熟练掌握了推荐算法和推荐系统原理过后,直...
2019-12-30 14:27:33
233
原创 leetcode 最无重复长串 ,四数之和,combination sum 问题
leetcode经典问题(课程答辩)1.无重复最长子串问题给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb” 输出: 3示例 2:输入: “bbbbb” 输出: 1示例 3:输入: “pwwkew” 输出: 32.Combination Sum给定一个无重复元素的数组 candidates 和一个目标数 target ,找 出...
2019-12-30 14:07:30
139
原创 Python数据分析案例篇(一)泰坦尼克号数据分析
Python泰坦尼克生还预测Kaggle Titanic 数据分析案例背景介绍20世纪初,由英国白星航运公司制造的一艘巨大豪华客轮。是当时世界上最大的豪华客轮,被称为是“永不沉没的”或是“梦幻客轮”。泰坦尼克号是人类的美好梦想达到顶峰时的产物,反映了人类掌握世界的强大自信心。她的沉没,向人类展示了大自然的神秘力量,以及命运的不可预测。到泰坦尼克号沉没那天为止,西方世界的人们已经享受了10...
2019-08-02 21:01:32
11564
5
原创 Python数据分析 三剑客篇(三)matplotlib全网最混介绍
Matpoltlib数据可视化基础,相对而言,这个库没有前两个库那么复杂,主要功能就是绘制图形,直观的表达数据之间的联系简单折线图展示import pandas as pdtask=pd.read_csv("/Users/a/Desktop/Titanic/gendermodel.csv")#读取数据print(task.head(6))#打印前六行import matplotlib....
2019-07-30 18:18:50
605
原创 Python数据分析 三剑客篇(二)Pandas
Pandas(数据读取)pandas 和 numpy 相辅相成,pandas功能主要为统计分析,对数据进行一个预处理 读写不同数据源数据(重点介绍CSV数据)import pandas as pdtrain=pd.read_csv(’/Users/a/Desktop/Titanic/train.csv’)#读取文件,如果代码和数据在同一个文件夹,可以写文件名即可 print(type...
2019-07-29 15:27:50
1213
原创 Python数据分析 三剑客篇(一)NumPy
Python数据分析(一)NumpyNumPy,Pandas和 Matplotlib“工欲善其事,必先利其器。” Numpy ,pandas 和 Matplotlib 被称为Python数据分析的三剑客模块。首先我们来讲讲安装问题,推荐直接傻瓜式安装Anaconda,里面封装了大量的第三方库,其中就包括了我们的三剑客模块。推荐到清华大学开源镜像站下载。NumPy是一个科学计算库,提供了...
2019-07-26 17:51:03
2674
原创 Python数据分析开篇
开篇从基础篇大致可以看出Python的语法结构非常的简单,然而学完这些仅仅只能支持在校期末考试(博主还是在校大学生,真菜鸡一只),很多同学都会有学完一门语言,知道了这么个东西,就是不知道有啥用的感觉。甚至开始质疑学校的教学质量和水平,emmmmm……其实个人觉得,软工专业包括相关的一系列专业,程序设计课仅仅只上学校安排的那几节真的远远不够,学校在这里的任务只是开个课,给一个学习思路,提供资源...
2019-07-25 16:59:20
143
原创 小白的python学习实录 基础篇(九)异常
错误和异常常见错误:语法错误(syntax error):违背语法规则,编译器或解释器无法通过逻辑错误(logical error):程序通过解释,可以运行但是不能得到预想的结果运行时错误(runtime error):简称异常,程序通过解释,可以运行,可以得到预想的结果,但是有时无法正常运行常见异常:异常处理:try: #主代码块except 类型 as e:...
2019-07-18 11:18:17
108
原创 小白的python学习实录 基础篇(八)面向对象
面向对象编程(仅适合有C艹,java语言基础)针对大型软件设计而提出,支持代码复用和设计复用定义类:所有类都是object类的子类class 类名(object): 类属性声明 def__init__(self ,实参1,实参2): 声明实参 定义方法示例:lass employee(): cName='abc' ...
2019-07-17 18:07:04
146
原创 小白的python学习实录 基础篇(七)数据文件
Python数据文件操作文件通常把文件对象的创建形象的称为文件打开。最常用的是内置函数open()关于open()函数基本语法格式:file = open ( name ,mode ,encoding=None )1). name 文件名 为了把文件建在特定位置,可以在交互环境下使用os模块里的os.mkdir( )函数:Mac OS示例:在桌面建立一个名为1的文件夹impor...
2019-07-15 18:30:30
109
原创 前六章补充案例和知识点(一)
案例和一些知识点的补充(一)参考文献:[1] 张基温 魏士靖.Python开发案例教程[M].北京:清华大学出版社,2019.[2] 张云和 刘友祝 王硕.Python3.x全栈开发从入门到精通简单算术计算:1.关于floor除(//)并不是简单的取整数部分,而是向下取整 如:-5//3=-22.关于求余(%)先执行floor除法算出整除值,再按照被除数-(整除值*除数)计算案例:从...
2019-07-13 23:15:39
181
原创 小白的python学习实录 基础篇(六) 函数
函数目的:减少工作量,重复使用相同的一段代码函数的定义:可以自定义一个指定功能的函数语法: def name ( ):body编写大型程序的时候最好养成函数体第一行使用文档字符串存放函数说明的习惯函数内容以冒号开始,return结束(不写return返回None)Python自带函数 max(),min()等不带参函数:def hello():print(“s...
2019-07-10 11:31:14
154
原创 小白的python学习实录 基础篇(五)标识符 编程规范 运算符 条件循环语句
标识符Python标识符命名规则标识符由数字,字母,下划线组成(数字不能开头)标识符区分大小写如果是下划线_开头,该标识符是有意义的(_a)表示不能直接访问的类属性,需要通过类提供的接口来访问,(不能用 from~import~导入 )后面会介绍。以双下划线开头__a表示类的私有成员以双下划线开头和结尾__a__表示特殊方法的专用标识,init( )表示类的构造函数Pytho...
2019-07-09 17:22:21
110
原创 小白的python学习实录 基础篇(四)元组 字典 集合
**元组(Tuple)**元组与列表相似,但是元组的元素不能修改,定义元组的方式有很多,以下作出展示:tup1=(‘sing’,‘dance’,‘rap’,‘basketball’)tup2=(1,2,3,‘everybody high qilai’)tup3=1,2,3tup4=‘1’,‘2’,‘3’tup5=“a”,“b”,“c”可以用元组给多个变量赋值tup...
2019-07-08 19:16:28
136
原创 小白的python学习实录 基础篇(三)列表
列表(List)语法: list[ ‘a ’,’b ’,’c’, ]相比字符串,列表里的元素可以改变,对元素的管理更加自由列表的正索引从0开始到length-1结束,负索引从-1开始到-length结束列表元素的替换如:a=[1,2,3,4,5,6]a[0]=4a[2:4]=[8,9]print(a) #输出:[4,2,8,9,5,6]访问列表中的值:print(...
2019-07-08 11:40:33
99
原创 小白的python学习实录 基础篇(二)字符串
字符串(String)1.python中创建字符串在字符两边都加上引号(单引号,双引号都可以)当字符串跨越多行时使用三引号,如:str=’’‘你是个骚猪’’’print(str)结果如下:你是个骚猪连接字符串 * 和 +代码展示如下:print("你是个骚猪 “*3)#表示输出三遍print(“你”+“是”+“哈”+“批”)#表示连接字符串输出结果:你是...
2019-07-07 23:10:07
144
原创 小白的python学习实录 基础篇(一)
Python3.x基础篇(一)一·(变量)1.python的变量不用声明可以直接使用删除变量使用 del 如:del a2.赋值问题python允许同时为多个变量赋值如:a=b=c=1可以创建多个对象赋值如:a , b, c=1, 2, “hello”3.关于命名变量名可以包括字母,数字,下划线 ,但不能以数字开头Python区分大小写 如:A ,a 完全是两个名称做为全...
2019-07-05 12:01:25
365
Titanic.zip
2019-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人