安全矩阵

 找回密码
 立即注册
搜索
楼主: Mint97

袁青学习日记

[复制链接]

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-1 14:14:08 | 显示全部楼层
类和对象(一)
1)介绍对象
都说Python无处不对象,而什么是对象呢?其实这就需要引用封装的概念,把数据扔到列表里面,这一种封装,是数据层面的封装;把常用的代码段打包成一个函数,这也是一个封装,是语句层面的封装;而现在学习的对象也是一种封装思想:面向对象的灵感来源于模拟真实世界,把数据和代码都封装在一起。
2)对象=属性+方法
在Python中,对象的特征称为“属性”,行为称为“方法”。
如果把“乌龟”写成代码,将会是下面这样:
class Turtle:
    #python 中的类名预定以大写字母开头
    #特征的描述称为属性,在代码层面来看其实就是变量
    color = "green"
    weight = 10
    legs = 4
    shell = True
    mouth = "大嘴"
    #方法就是函数,通过调用这些函数来完成某些任务
    def climb(self):
        print("我正在努力的爬")

    def run(self):
        print("我正在飞快地向前跑")

    def bite(self):
        print("我咬死你咬死你")

    def eat(self):
        print("有的吃,真满足")

    def sleep(self):
        print("困了,睡了")



以上代码定义了对象的特征和方法,但还不是一个完整的对象,将定义的这些称为类(class)。需要使用类来创建一个真正的对象,这个对象就称为这个类的一个实例,也叫实例对象。
其实创建一个对象很简单:

ps:类名后面跟着小括号,这和函数是一样的,所以在Python中,类名约定用大写字母开头,函数用小写字母开头,这样容易区分。另外赋值并不是必须的,但如果没有把一个创建好的实例对象赋值给一个变量,那这个对象就没有办法使用了,因为没有任何引用指向这个实例。
所以,调用对象里的方法,使用(.)就可以。
3)self是什么






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-4 22:48:44 | 显示全部楼层
模块(一)
其实模块是一种更高级的封装,说到封装,回顾一下:
1 容器(列表,元组,字符串,字典等),也是对数据的封装
2 函数,是对语句的封装
3 类,是对方法和属性的封装,也就是对函数和数据的封装
而模块就是程序,其实模块就是平时写的任何代码,保存的每一个.py结尾的文件,就是一个独立的模块。

其实这个时候就应该引进一个概念了:命名空间。命名空间表示标识符的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。
在Python中,每一个模块都会维护一个独立的命名空间,应该将模块名加上,才能够正常使用。
导入模块
其实在Python中有三种导入模块的方法:
1 import 模块名
直接使用import,但是在调用模块中的函数时,需要加上模块的命名空间。
例(用于计算摄氏度和华氏度的相互转换):

2 from 模块名 import 函数名
其实第一种方法有很大的弊端,如果命名空间的名字很长的话,这就很麻烦了,而且还容易出错。
所以这种的方法就第一种要简单一点。
这种导入方法会直接将模块的命名空间覆盖起来,所以调用的时候也就不需要再加上命名空间了:

3 import 模块名 as 新名字
最好的方法总是留在最后,这种方法是我最喜欢的一种,这种方法结合了前两种方法的优势,是用这种方法可一个导入的命名空间起一个新的名字:






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-6 23:06:16 | 显示全部楼层
模块(二)
__name__='__main__'
前面学习的是模块的作用和用法。
作用:
1 封装组织Python的代码。当代码量非常大的时候,可以有组织,有纪律地根据不同的功能,将代码分割成不同的模块。这样,每个模块相互之间是独立的。那这代码更容易阅读和测试。
2 实现代码的重用。这大大节约了人们的时间和精力。
其实在Python中,if__name__ == '__main__'是很常见的。
先举个例子,一般写完代码要先测试一下:

单独运行这个模块是没问题,但是在另一个文件导入后在调用就不行。
为了避免问题的发生就应该让python知道该模块是作为程序运行还是导入到其他模块中。为了实现这一点,需要使用模块的__name__属性.
在作为程序运行的时候,__name__属性的值是‘__main__’;而作为模块导入的时候,这个值就是该模块的名字。

搜索路径
现在遇见一个问题,写好的模块应该放在哪?
开始放在和导入这个模块文件的源代码同一个文件夹里,但这是有更好的方法。
在这里需要理解一个概念:搜索路径。
Python模块的导入需要一个路径搜索的过程。例如导入一个名为hellow的模块,Python会在预定好的搜索路径中寻找一个名为hellow.py的模块文件:如果有,则导入;如果没有,则导入失败。
而这个搜索路径,就是一组目录,可以通过sys模块中的path变量显示出来:

列出的这些路径都是Python在导入模块操作时会去搜索的,尽管这些模块都可以使用,但是site-packages目录是最佳的选择。

在实际开发中,一个大型的系统有成千上万的python模块是很正常的事。单单用模块来定义python的功能是不够的,如果都放在一起显然不合适,所以这就需要引入“包”的概念。
什么是包?事实上有点像把模块分别类的存放在不同的文件夹,然后把各个文件夹的位置告诉python。
只是包的实现更为简单。创建一个包的具体操作如下:
(1)创建一个文件夹用于存放相关的模块,文件夹的名字就是包的名字:
(2)在文件夹中创建一个__init__.py的模块文件,内容可为空。
(3)将相关的模块放入其中。
ps:在第(2)步中,必须在每一个包的目录下建一个__init__.py模块。这是python的规定,用来告诉python将该目录当成一个包来处理。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-8 20:02:48 | 显示全部楼层
爬虫(一)
入门
什么是网络爬虫?网络爬虫,又称网页蜘蛛,如果把整个互联网想象成类似于蜘蛛网一样的构造,那么爬虫就是要在这上面爬来爬去,以便捕获需要的资源。
我们之所以能够通过百度或谷歌这样的搜索引擎检索到需要的网络,靠的就是它们大量的爬虫每天在互联网上爬来爬去,对网页中的每一个关键词进行索引,建立索引数据库。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词相关的度高低依次排序。
使用python编写爬虫代码,要解决的第一个问题是:python如何访问互联网?
这是一个现实问题,好在python为此准备好了“电池”:urllib模块
事实上这个urllib是由URL和lib这两个单词组成:URL就是平时说的网页的地址;lib是library(库)的缩写。
URL有三个部分组成:
(1)协议,常见的有:http,https,ftp,file(访问本地文件夹),ed2k(电驴的专用链接)等
(2)存放资源的服务器的域名系统(DNS)主机名或IP地址(有时候要包含端口号,各种传输协议都有默认的端口号,如http的默认端口号是80)。
(3)主机资源的具体地址,如目录和文件名等
第一部分和第二部分用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。
其实urllib也不是一个模块,它是一个包,里边共有四个模块(urllib.requst,urllib.error,urllib.parse,urllib.robotparser)。第一个模块(urllib.requst)是最复杂的也是最重要的,因为里边包含了对服务器请求的发出,跳转,代理和安全等各个方面。
编码
事实上计算机只认0和1,然而却可以通过计算机来显示文本,这就是靠编码来实现的。其实编码就是一个协议,例如ASCLL编码约定看、了大写字母A对应十进制数65,那么在读取一个字符串的时候,看到65,计算机就知道这是大写字母A的意思。
由于计算机是美国人发明的,所以这个ASCLL编码设计时只采用1字节储存,包含了大小写英文字母,数字和一些字符。但是计算机在全世界普及之后,这就成了ASCLL编码的一个瓶颈,因为一个字节完全不足以表示各国的语言。
后来中国制定了GB2312编码,用于对汉字进行编码。而日本也为自己的文字制定了Shift_JIS编码,韩国为自己的文字制定了Euc-kr编码。就因为这多种的编码,导致计算机乱码的出现,所以这时候就需要一个统一的标准,Unicode编码应运而生。Unicode组织的想法最初也很简单:创建一个做够大的编码,将所有国家的编码都加进来,执行统一标准。
但新的问题也出现了:如果你写的文字只包括英文和数字,那么用Unicode编码就显得特别浪费空间(用ASCLL编码只占用一般的存储空间)。所以本着能省一点是一点的想法,Unicode还创造出了多种实现方式。例如,常用的UTF-8编码就是Unicode的一种实现方式,它是可变长编码。



回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-11 21:25:08 | 显示全部楼层
PHP学习
什么是 PHP?PHP 是 "PHP Hypertext Preprocessor" 的首字母缩略词,是一种被广泛使用的开源脚本语言,脚本在服务器上执行,PHP 没有成本,可供免费下载和使用。它强大到足以成为在网络上最大的博客系统的核心(WordPress)!它深邃到足以运行最大的社交网络(facebook)!而它的易用程度足以成为初学者的首选服务器端语言!该语言可以让web开发人员快速的书写动态生成的网页。而什么是 PHP 文件?PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码PHP 代码在服务器上执行,而结果以纯文本返回浏览器PHP 文件的后缀是 ".php"PHP 能够做什么?PHP 能够生成动态页面内容能够创建、打开、读取、写入、删除以及关闭服务器上的文件能够接收表单数据能够发送并取回 cookies能够添加、删除、修改数据库中的数据能够限制用户访问网站中的某些页面能够对数据进行加密通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。
PHP的平台支持(window,Linux,UNIX)
数据库(Sqlserver,mysql,Oracle,Assess)



静态网站和动态网站的区别:静态网站:web1.0时代
动态网站:web2.0时代
网站:
网站(Website)是指在因特网上根据一定的规则,使用HTML(标准通用标记语言下的一个应用),php等工具制作的用于展示特定内容相关网页的集合。简单地说,网站是一种沟通工具,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。

静态网站的特征:
网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;
静态网页的内容相对稳定,因此容易被搜索引擎检索;
静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
静态网页的交互性较差,在功能方面有较大的限制。
动态网站的特征:
1 交互性:网页会根据用户的要求和选择的改变和响应(基于数据库的存在),浏览器作为客户端成为一个动态交流的桥梁,动态网页的交互性也是今后web发展的潮流。
2 自动更新:即无须手动更新HTML文档,便会自动生成新页面,大大节省工作量。
3 因时因人而异:即当不同时间,不同用户访问同一网址时会出现不同页面。



网站基本概念
服务器概念:
服务器(server),也称伺服器,是提供计算机服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说应具备承担服务并且保障服务的能力。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。
服务器:能够提供服务的机器,














回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-17 21:14:31 | 显示全部楼层
BurpSuite系列(一)----Proxy模块(代理模块)

一、简介

Proxy代理模块作为BurpSuite的核心功能,拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。

Burp 代理允许你通过监视和操纵应用程序传输的关键参数和其他数据来查找和探索应用程序的漏洞。通过以恶意的方式修改浏览器的请求,Burp 代理可以用来进行攻击,如:SQL 注入,cookie 欺骗,提升权限,会话劫持,目录遍历,缓冲区溢出。拦截的传输可以被修改成原始文本,也可以是包含参数或者消息头的表格,也可以十六进制形式,甚至可以操纵二进制形式的数据。在 Burp 代理可以呈现出包含 HTML 或者图像数据的响应消息。

二、模块说明

1.Intercept

用于显示和修改HTTP请求和响应,通过你的浏览器和Web服务器之间。在BurpProxy的选项中,您可以配置拦截规则来确定请求是什么和响应被拦截(例如,范围内的项目,与特定文件扩展名,项目要求与参数,等)。该面板还包含以下控制:

消息类型显示的四种格式

raw:这里显示的是纯文本形式的消息。在文本窗口的底部提供了一个搜索和加亮功能,可以用它来快速地定位出消息中的感兴趣的字符串,如错误消息。在搜索的左边有一个弹出项,让你来处理大小写问题,以及是使用简单的文本搜索还是正则表达搜索。


params:对包含参数(URL 查询字符串,cookies 消息头,或消息体)的请求,这个选项可以把参数分析成名称/值的组合,并且允许你能简单地查看和修改。

headers:这里以名称/值的组合来显示 HTTP 的消息头,并且还以原始的形式显示消息体。

hex:这里允许你直接编辑消息的原始二进制数据。如果在文本编辑器里修改,某些传输类型(例如,使用 MIME 编码的浏览器请求的部分)包含的二进制数据可能被损坏。为了修改这些类型的消息,应使用十六进制。

1.Forward
当你编辑信息之后,发送信息到服务器或浏览器

2.Drop
当你不想要发送这次信息可以点击drop放弃这个拦截信息

3.Interceptionis on/off
这个按钮用来切换和关闭所有拦截。如果按钮显示Interceptionis On,表示请求和响应将被拦截或自动转发根据配置的拦截规则配置代理选项。如果按钮显示Interception is off则显示拦截之后的所有信息将自动转发。

4.Action
说明一个菜单可用的动作行为操作可以有哪些操作功能。

Send to Spider             发送给蜘蛛
Do an active scan          执行主动扫描
Send to Intruder             发送到入侵者
Send to Repeater          发送到中继器
Send to Sequencer       发送到序列发生器
Send to Comparer        发送到比较器
Send to Decoder   发送到解码器
Request in browser       在浏览器的请求
Engagement tools        参与工具

Change request method  对所有的请求,经过把所有相关的请求参数适当地搬迁到这个请求里来,你就可以自动地把请求的方法在 POST 和 GET 中间切换。通过发送恶意的请求使用这个选项来快速测试应用程序的极限参数是多少。

Change body encoding   对于所有的请求,你可以在应用程序/X-WWW 格式的 URL 编码和多重表单/数据之间切换消息体的编码方式。

Copy URL       把当前的 URL 完整地复制到粘贴板上。
Cope as curl command   作为curl命令

Cope to file        这个功能允许你把选择一个文件,并把消息的内容复制到这个文件里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。复制操作是在选择的文本上进行的,如果没有被选中的内容,则是针对整个消息了。

Pase form file        这个功能允许你选择一个文件,并把文件里的内容粘贴到消息里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。粘贴操作会替换掉被选中的内容,如果没有内容被选中,则在光标位置插入这些内容。


Save item                        这个功能让你指定一个文件,把选中的请求和响应以XML的格式保存到这个文件,这里面包括所有的元数据如:响应的长度,HTTP 的状态码以及 MIME 类型。


Don't intercept requests       通过这些命令可以快速地添加拦截动作的规则来阻止拦截到的消息,这些消息和当前的消息有着相同的特征(如远程主机,资源类型,响应编码)。
Do intercept                           仅对请求有效,这允许你可以对当请求和响应的进行强制拦截。
Convert seiection                 这些功能让你能够以多种方案对选择的文本进行快速的编码和解码。
URL-encode as you type    如果这个选项被打开,你输入的像&和=这样的符号会被等价的 URL编码代替。
Cut                                           剪切
Copy                                       复制
Paste                                       粘贴
Message edit help               消息编辑帮助
Proxy interception help       代理拦截帮助

2.HTTP History

这个选项是来显示所有请求产生的细节,显示的有目标服务器和端口,HTTP 方法,URL,以及请求中是否包含参数或被人工修改,HTTP 的响应状态码,响应字节大小,响应的 MIME类型,请求资源的文件类型,HTML 页面的标题,是否使用 SSL,远程 IP 地址,服务器设置的 cookies,请求的时间。

双击某个请求即可打开详情,通过Previous/next可以快速切换请求,并且Action也可以将请求发送至其他模块。

可以通过最左边的列里的下拉菜单来加亮单个选项:

在历史记录表里,右击一个或多个选项,就会显示一个上下文菜单让你执行一些操作,包括修改目标范围,把这些选项发送到其他 Burp 工具,或者删除这些项:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-19 21:01:14 | 显示全部楼层

BurpSuite系列(一)----Proxy模块(代理模块)

Add to scope                   添加范围
Spide from here                蜘蛛从当前地址开始
Do an active scan              执行主动扫描
Do a passive scan       做被动扫描
Send to Intruder               发送到入侵者
Send to Repeater               发送到中继器
Send to Sequencer              发送到序列生成器
Send to Comparer(request)      发送到比较器(请求)
Send to Comparer(response)     发送到比较器(响应)
Show response in browser       在浏览器中显示响应
Request in browser       浏览请求
Engagement tools               接合工具
Show new History windows       显示新的历史窗口
Add comment               添加评论
Highlight       高亮部分
Delete item                    删除项目
Clear history                  清除历史记录
Copy URL                       复制网址
Copy as curl command           复制为curl命令
Copy links                     复制链接
Save item                      保存项目
Proxy history help             代理历史帮助

还可以通过配置过滤器来确定哪些顶层的数据项显示在表格里。有效应用程序包含了大量的内容,如图像,CSS 等,这些有利于从视图上隐藏的。AJAX 应用程序产生大量相似的异步请求,你可能会想把他们从视图上过滤出来来查看一些感兴趣的项。在这个历史记录表的顶部有一个过滤栏。单击会有一个弹出窗口,让你来精准地配置显示哪些内容在表格里:

3.WebSockets history

这个选项主要用于记录WebSockets的数据包,是HTML5中最强大的通信功能,定义了一个全双工的通信信道,只需Web上的一个 Socket即可进行通信,能减少不必要的网络流量并降低网络延迟。

4.Options

该选项主要用于设置代理监听、请求和响应,拦截反应,匹配和替换,ssl等,其中有八大选项roxy Listeners、Intercept Client Requests、Intercept Server Responses、Intercept WebSockets Messages、Response Modification、Match and replace、SSL Pass Through、Miscellaneous

选项1:Proxy Listeners

代理侦听器是侦听从您的浏览器传入的连接本地HTTP代理服务器。它允许您监视和拦截所有的请求和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监听12.0.0.1地址,端口8080。要使用这个监听器,你需要配置你的浏览器使用127.0.0.1:8080作为代理服务器。此默认监听器是必需的测试几乎所有的基于浏览器的所有Web应用程序。

1.add:添加一个新的代理地址。

   1.binding:新建一个代理,bind to port-绑定端口号 ,bind to address -绑定ip地址

2.request hadning:这些设置包括选项来控制是否BurpSuite重定向通过此侦听器接收到的请求:

            2.1.Redirect to host - 如果配置了这个选项,Burp会在每次请求转发到指定的主机,而不必受限于览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹配/替换规则重写的主机中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。

            2.2.Redirect to port - 如果配置了这个选项,Burp会在每次请求转发到指定的端口,而不必受限于浏览
            2.3.Force use of SSL - 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP。您可以使用此选项,在与SSL相关的响应修改选项结合,开展sslstrip般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过BurpProxy代理。

3.Certificate:这些设置控制呈现给客户端的SSL服务器的SSL证书。

3.1.Generate CA-signed per-host certificate-这是默认选项。安装后,BurpSuite创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用,每次BurpSuite运行。当你的浏览器发出SSL连接到指定的主机,Burp产生该主机,通过CA证书签名的SSL证书。您可以安装BurpSuite的CA证书作为在浏览器中受信任的根,从而使每个主机的证书被接受,没有任何警报。您还可以导出其他工具或Burp的其他实例使用CA证书。

3.2.Generate a CA-signed certificate with a specific hostname---||这类似于前面的选项;然而,Burp会产生一个单一的主机证书与每一个SSL连接使用,使用您指定的主机名。在进行无形的代理时,此选项有时是必要的,因为客户端没有发送连接请求,因此Burp不能确定SSL协议所需的主机名。你也可以安装BurpSuite的CA证书作为受信任的根。

3.3.Use a custom certificate---||-此选项使您可以加载一个特定的证书(在PKCS#12格式)呈现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证书链)的客户端应该使用这个选项。

2.edit:编辑选中的代理地址。
3.remove:删除选中代理地址。

选项2:Intercept Client Requests

配置拦截规则,设置拦截的匹配规则。 当Intercept request based on the following rules为选中状态时,burpsuite会配置列表中的规则进行拦截或转发。

注意:如果该复选框未选中,那么即使Intercept is on也无法截取数据包。
规则可以通过Enabled列中的复选框选择开启或关闭。
规则可以是域名, IP地址,协议, HTTP方法, URL,文件扩展名,参数,cookie ,头/主体内容,状态代码,MIME类型, HTML页面标题等。
规则按顺序处理,并且使用布尔运算符AND和OR组合。

选项3:Intercept Server Responses

配置拦截规则,设置拦截的匹配规则,不过这个选项是基于服务端拦截,当选小的Intercept request based on the following rules为选中状态时,burpsuite会匹配响应包。

选项4:Intercept WebSockets Messages

选项5:Response Modification

选项6:Match and replace

用于自动替换请求和响应通过代理的部分。对于每一个HTTP消息,已启用的匹配和替换规则依次执行,选择适用的规则进行匹配执行。

规则可以分别被定义为请求和响应,对于消息头和身体,并且还特别为只请求的第一行。每个规则可以指定一个文字字符串或正则表达式来匹配,和一个字符串来替换它。对于邮件头,如果匹配条件,整个头和替换字符串匹配留空,然后头被删除。如果指定一个空的匹配表达式,然后替换字符串将被添加为一个新的头。有可协助常见任务的各种缺省规则 - 这些都是默认为禁用。 匹配多行区域。您可以使用标准的正则表达式语法来匹配邮件正文的多行区域。

选项7:SSL Pass Through

选项8:Miscellaneous





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-24 19:45:43 | 显示全部楼层
学习日记
今天主要是重新做一次用navicat创建一个数据库储存各种信息,并解决其中遇到的一些问题。
第一个问题就是Navicat使用过期的问题,所以我们需要使用注册表重新开始Navicat倒计时免费试用。

其中info文件很多,需要一个一个的删除。
接下来就需要创建数据库,这就需要我们打开xampp的MySQL服务。但我的xampp是在寒假的时候下载的,现在使用已经出现了很多问题,暂时解决不了,所以我就把它卸载了,重新下载了一个,其步骤如下:
先进入官方网站,下载XAMPP,下载后我是在f盘中创建了一个tool文件夹,然后再在tool文件夹中再创建了一个xampp文件夹,xampp的下载路径就在那个xampp文件夹里。
ps:最好不要放在系统盘中。
配置Apache:


把httpd.conf中的80端口全部修改为8081,如果不修改,会与默认80端口产生冲突,严重时可能导致浏览器不能正常使用。



./apache/conf/httpd-ssl.conf文件把端口443修改为4433



配置MySQL

把my.ini中的3306改为3316(如果3306不冲突,可以不修改)


点击XAMPP控制面板上的start按钮,启动Apache服务器、MySQL服务器,Apache默认网站目录为…\xampp/htdocs。


测试

接下来在浏览器地址栏输入“http://localhost:8081/dashboard/”,若出现如下界面,那么安装就算成功了。


接下来我们来创建数据库,首先要打开xampp的MySQL服务,然后打开navicat连接到MySQL。

连接名自拟,主机为localhost,端口默认3306,用户名密码默认为空。
连接好之后,我们右键->新建数据库,之后新建表。



输入表头即可

表名自拟,我是1,字符集和排序规则如图。

4、导入:

打开新建的表,点击导入



选中Excel文件

有两种特殊情况:

(1)如果没有这种数据格式,可能需要卸载重新安装已经更新的Navicat

(2)如果Excel表格无法打开,可能是缺少驱动,微软官网下载AccessDatebaseEngine

一直按要求点击下一步

完成后关闭,右键点击刷新,可见效果。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-26 20:56:25 | 显示全部楼层
burpsuit----Intruder模块(暴力破解)
二、模块说明
Burp Intruder主要有四个模块组成:
1:Target 用于配置目标服务器进行攻击的详细信息。
2:Positions  设置Payloads的插入点以及攻击类型(攻击模式)。
3:Payloads  设置payload,配置字典
4:Opetions   此选项卡包含了request headers,request engine,attack results ,grep  match,grep_extrack,grep  payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。


1:Target 目标选项(Target tab)
这个选项是用来配置目标服务器的细节:

2:Positions 位置选项(Positions tab)
这个选项是用来配置在攻击里产生的所有 HTTP 请求的模板:

使用一对§字符来标记出有效负荷的位置,在这两个符号直接包含了模板文本的内容。当把一个有效负荷放置到一个给出的请求的特殊位置上时,就把这§符号放到这个位置,然后在两个符号之间的出现的文本都会被有效负荷替换。当有个特殊位置没有为一个给出的请求安排有效负荷时(这只适用"sniper"攻击类型),那个位置的§字符会被删除,出现在它们之间的文本不会变化。


当使用 Burp Suite 发送一个其他地方的请求时,Burp  Intruder 会对你最想放置有效负荷的位置做一个最好的猜测,并且它把这些放置在每个 URL 和主体参数的值里,以及每个cookie  里。每个标记和它中间的文本都会被加亮以显得更清晰。你可以使用 Intruder  菜单上的选项标记的位置是要替换还是附加现有的参数值。在上面的请求编辑器里,指出了定义位置的数量和文本模板的大小。

你可以使用选项上的按钮来控制位置上的标记:

1. add § — 在当前光标位置插入一个位置标记。
2. clear § — 删除整个模板或选中的部分模板里的位置标记。
3. auto § — 这会对放置标记的位置做一个猜测,放哪里会有用,然后就把标记放到相应位置。这是一个为攻击常规漏洞(SQL 注入)快速标记出合适位置的有用的功能,然后人工标记是为自定义攻击的。
4.refresh — 如果需要,可以刷新编辑器里有颜色的代码。
5.clear — 删除整个编辑器内容。


3:Payloads 有效负荷选项(Payloads tab)
这个选项是用来配置一个或多个有效负荷的集合。如果定义了"cluster bomb"和"pitchfork"攻击类型,然后必须为每定义的有效负荷位置(最多8个)配置一个单独的有效负荷。使用"payload set"下拉菜单选择要配置的有效负荷。


选项1:Payload Sets Payload数量类型设置

选项2:Payload Opetions[Simple list]  该选项会根据选项1中Payload type的设置而改变


选项3:Payload Processing 对生成的Payload进行编码、加密、截取等操作

选项4:Payload Encoding 你可以配置哪些有效载荷中的字符应该是URL编码的HTTP请求中的安全传输。任何已配置的URL编码最后应用,任何有效载荷处理规则执行之后。  这是推荐使用此设置进行最终URL编码,而不是一个有效载荷处理规则,因为可以用来有效载荷的grep选项来检查响应为呼应有效载荷的最终URL编码应用之前。

4:Opetions  选项卡(Options tab) 此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep  payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。


选项1:Request Headers 这些设置控制在Intruder是否更新配置请求头。

如果选中‘update Content-Length  header’框,Burp Intruder 会使用每个请求的 HTTP 主体长度的正确值,添加或更新这个请求里 HTTP  消息头的内容长度。这个功能对一些需要把可变长度的有效载荷插入到 HTTP 请求模板主体的攻击是很有必要的。这个 HTTP 规范和大多数 web  服务器一样,需要使用消息头内容长度来指定 HTTP  主体长度的正确值。如果没有指定正确值,目标服务器会返回一个错误,也可能返回一个未完成的请求,也可能无限期地等待接收请求里的进一步数据。

如果选中‘set Connection: close’框,则 Burp Intruder 会添加或更新 HTTP 消息头的连接来请求在每个请求后已关闭的连接。在多数情况下,这个选项会让攻击执行得更快。
选项2:Request Engine 设置发送请求的线程、超时重试等。

选项3:Attack Results 设置攻击结果的显示。

选项4:Grep - Match 在响应中找出存在指定的内容的一项。

选项5:Grep - Extract 通过正则提取返回信息中的内容。

选项6:Grep - Payloads  这些设置可以用于包含已提交的有效负载的反射的标志结果项目。如果启用了此选项,BurpSuite会添加包含一个复选框指示当前负载的值在每个响应发现新的结果列。

选项7:Redirections 重定向响应,控制Burp在进行攻击时如何处理重定向。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-4-28 22:48:23 | 显示全部楼层
本帖最后由 Mint97 于 2020-4-28 22:51 编辑

重温sql及sql输入
sql的介绍
SQL 是用于访问和处理数据库的标准的计算机语言。
sql是指结构化查询语言,使得我们有能力访问数据库。

其主要的功能分为以下几种:

1 面向数据库执行查询
2 可从数据库取回数据
3 可在数据库中插入新的记录
4 可更新数据库中的数据
5 可从数据库删除记录
6 可创建新数据库
7 可在数据库中创建新表
8 可在数据库中创建存储过程
9 可在数据库中创建视图
10 可以设置表、存储过程和视图的权限

数据库表
一个数据库通常包含一个或多个表。每个表由一个名字标识。表包含带有数据的记录(行)。
SQL DML 和 DDL
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据
QL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

新建数据库
首先我们应该打开Navicat。
1.进入Navicat,选择要操作的数据库

2.依次选择“表”-“查询”

3.单击创建查询按钮

4.在如下的查询编辑器中输入要执行的sql语句 :
create  database my1
5 然后点击运行:

然后就创建好了一个数据库。
create database 数据库名是sql的语法之一。

创建数据库中的表
CREATE TABLE 语句
CREATE TABLE 语句用于创建数据库中的表。
SQL CREATE TABLE 语法CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)
数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型:
数据类型
描述
  • integer(size)
  • int(size)
  • smallint(size)
  • tinyint(size)
仅容纳整数。在括号内规定数字的最大位数。
  • decimal(size,d)
  • numeric(size,d)
容纳带有小数的数字。
"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。
char(size)
容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。
varchar(size)
容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最大长度。
date(yyyymmdd)
容纳日期。
SQL CREATE TABLE 实例
本例演示如何创建名为 "Shoolmate" 的表。“Shoolmate”是这张表的名字。
该表包含 5 个列,列名分别是:"Id_P","name","sex","birthday","age","native place","nationality","major","
CREATE TABLE Shoolmate(
Id_P int,
name  varchar(255),
sex varchar(255),
birthday varchar(255),
native place varchar(255),
nationality varchar(255),major varchar(255),
number varchar(255)
)










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 05:59 , Processed in 0.020221 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表