抗击新冠肺炎的消息牵动着每个人的心,近日确诊的病例已呈现高峰趋势,疫情来势汹汹,我们一定要理性防疫,保护好自己和家人。
不出门我们也可以过得很充实,做好假期规划,在家充电学习,从而更好的投入到接下来的工作与学习中,i 春秋也将按部就班的分享技术文章,帮助大家快速提升安全技能!
今天与大家分享的是Python从入门到编写POC的系列文章,希望对大家学习有所帮助。
注:i 春秋公众号旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。
Python介绍
Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。
Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
前期准备
Python官网:
http://www.python.org/
Python文档下载地址:
http://www.python.org/doc/
Unix & Linux 平台安装 Python:
以下为在Unix & Linux 平台上安装 Python 的简单步骤:
- 打开WEB浏览器访问:http://www.python.org/download/
- 选择适用于Unix/Linux的源码压缩包。
- 下载及解压压缩包。
- 如果你需要自定义一些选项修改Modules/Setup
- 执行 ./configure 脚本
- make
- make install
执行以上操作后,Python会安装在 /usr/local/bin 目录中,Python库安装在
/usr/local/lib/pythonXX,XX为你使用的Python的版本号。
Window 平台安装 Python:
以下为在 Window 平台上安装 Python 的简单步骤:
- 打开WEB浏览器访问:http://www.python.org/download/
- 在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文件 , XYZ 为你要安装的版本号。
- 要使用安装程序 python-XYZ.msi, Windows系统必须支持Microsoft Installer 2.0搭配使用。只要保存安装文件到本地计算机,然后运行它,看看你的机器支持MSI。Windows XP和更高版本已经有MSI,很多老机器也可以安装MSI。
- 下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。
环境变量设置
1、Unix/Linux 设置环境变量
在 bash shell (Linux):输入
export PATH="$PATH:/usr/local/bin/python"
在 sh 或者 ksh shell:输入
PATH="$PATH:/usr/local/bin/python"
在 csh shell:输入
setenv PATH "$PATH:/usr/local/bin/python"
注意:/usr/local/bin/python 是 Python 的安装目录。
2、在 Windows 设置环境变量
打开CMD,输入
path=%path%;C:\Python
注意:C:\Python 是 Python 的安装目录。
HELL0 WORLD
我们从 Python 的编译器开始:
打开终端,执行 Python 打开 Python 解释器。
D:\ichunqiu\items>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>>
之后咱们就可以在解释器里写入代码了。
在解释器中输入以下命令,你就可以看到运行效果。
>>> print "HELL0 MOMO!"
PS:Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
在 Python 2.7.13 版本中,以上实例输出结果如下:
接下来,我们定义几个变量,我们可以用type( )查看变量的类型。
根据上图所示,你可以知道变量address是一个字符串,而变量port是一个整形
除此之外,还有一个可以判断变量类型。
他们的区别就是:
- type( )不会认为子类是一种父类类型;
- isinstance( )会认为子类是一种父类类型。
如果想知道字符串长度可以用:
>>> len( )
当然了,我们对字符串可以进行索引、切片和取长度的操作。
举个栗子:
>>> domain = "BBS.ICHUNQIU.COM">>> domain'BBS.ICHUNQIU.COM'>>> domain[11]'U'>>> domain[11:]'U.COM'>>> domain[4:11]'ICHUNQI'>>> domain[4:12]'ICHUNQIU'
CTF常用套路:把字符串倒过来
你可以这样:
>>> 'KISS MOMO'[::-1]'OMOM SSIK'
还有一个合并字符串,那当然就要用的+了。
>>> Domain = 'BBS.ichunqiu.com'>>> port = 4444>>> print 'HTTPS://' + Domain + ':' + str(port)[url]HTTPS://BBS.ichunqiu.com:4444[/url]
再学个list,接着上面的继续,可以用split( )参数把他分割成列表。
我们也可以对list进行添加跟删除
‘append’(添加)和‘remove’(删除)
>>> list = example.split(':')>>> list['HTTPS', '//BBS.ichunqiu.com', '4444']>>> list.append('KISS MOMO')>>> list['HTTPS', '//BBS.ichunqiu.com', '4444', 'KISS MOMO']>>> list.remove('4444')>>> list['HTTPS', '//BBS.ichunqiu.com', 'KISS MOMO']
学习 Python,有一个是必须要掌握的,那就是help( )函数。
help函数查看 Python模块中函数的用法:
>>> help(dir)Help on built-in function dir in module __builtin__:dir(...) dir([object]) -> list of strings If called without an argument, return the names in the current scope. Else, return an alphabetized list of names comprising (some of) the attributes of the given object, and of attributes reachable from it. If the object supplies a method named __dir__, it will be used; otherwise the default dir() logic is used and returns: for a module object: the module's attributes. for a class object: its attributes, and recursively the attributes of its bases. for any other object: its attributes, its class's attributes, and recursively the attributes of its class's base classes.
再来个栗子:
>>> a = [MOMO,Exp1ore]Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'MOMO' is not defined>>> a = ['MOMO','Exp1ore']>>> help(a)Help on list object: class list(object) | list() -> new empty list | list(iterable) -> new list initialized from iterable's items | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __delitem__(...) | x.__delitem__(y) <==> del x[y] | | __delslice__(...) | x.__delslice__(i, j) <==> del x[i:j] | | Use of negative indices is not supported. | | __eq__(...) | x.__eq__(y) <==> x==y | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getattribute__(...)-- More --
以上是今天分享的内容,大家看懂了吗?后面我们将持续分享 Python 系列相关文章,请大家及时关注。