zoukankan      html  css  js  c++  java
  • Python安全编程

    Python安全编程可以做什么?

    目录扫描

    Web+多线程{requests + threading + Queue: [后台 | 敏感文件(svn|upload)| 敏感目录(phpmyadmin)]}
    

    信息收集

    Web + 数据库{中间件(Tomcat | Jboss)+ C断 Web 信息 + 搜集特定程序}
    

    信息匹配&SQL注入

    Web + 正则{抓取信息(用户名 + 邮箱)+ SQL注入}
    

    反弹shell

    网络
    

    是不是已经心动了呢?

    一、Python 正则表达式

    1. 正则表达式

    正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的表达式。关于字符串中转义的问题,强烈推荐使用原生字符串类型来书写正则表达式,即只需要在表达式前面加 r 即可。

    2. re库详解

    2.1 正则表达式常用的函数

    函数 说明
    re.match() 从字符串的起始位置开始匹配,匹配成功返回一个匹配的对象,否则返回None
    re.search() 扫描整个字符串并返回第一个成功匹配的
    re.findall() 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表;如果没有找到则返回一个空列表
    re.split() 将字符串按正则表达式匹配结果进行分割,返回列表类型
    re.finditer() 在字符串中找到正则表达式所匹配的所有字串,并将所有字串的结果作为一个迭代器返回
    re.sub() 将字符串中所有匹配的正则表达式的地方替换成新的字符串
    语法说明如下:
    语法:re.match(pattern, string, flags=0)
    pattern:匹配的正则表达式
    string:要匹配的字符串
    flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等;flags=0表示不进行特殊指定
    
    import re
    matchStr = 'Cats are smarter than dogs'
    matchObj = re.match(r'(.*) are (.*?) .*', matchStr, re.M|re.I)
    if matchObj:
        print("matchObj.group(): ", matchObj.group())
        print("matchObj.group(1): ", matchObj.group(1))
        print("matchObj.group(2): ", matchObj.group(2))
        print("matchObj.group3(): ", matchObj.groups())
    else:
        print("No match!")
        
    matchObj.group():  Cats are smarter than dogs
    matchObj.group(1):  Cats
    matchObj.group(2):  smarter
    matchObj.groups():  ('Cats', 'smarter')
    

    关于正则表达式中的flag位:

    标志位 说明
    re.I 使匹配对大小写不敏感
    re.L 使本地化识别匹配
    re.M 多行匹配,影响 ^ 和 $
    re.S 使 . 匹配包括换行在内的所有字符
    re.U 根据 Unicode 字符集解析字符,这个标识影响 w, W, , B.
    flag=0 表示不进行特殊指定

    2.2 正则表达式模式

    模式 描述
    ^ 匹配字符串的开头
    $ 匹配字符串的末尾
    . 匹配除了换行符意外的任意字符
    [...] 表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'
    [^...] 不在[]内的字符:[^abc]匹配除了a, b, c之外的字符
    re* 匹配0个或多个的表达式
    re+ 匹配1个或多个的表达式
    re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪模式
    ........... 还有很多暂时用不上的,后续补充

    2.3. 贪婪模式和非贪婪模式

    python 中默认的是贪婪模式;
    贪婪模式:尝试匹配尽可能多的字符;
    非贪婪模式:尝试匹配尽可能少的字符

    start_at = 'good'
    match_start = re.match(r'^g.*', start_at)
    match_start.group()
    'good'
    match_start = re.match(r'^g.*?', start_at)
    match_start.group()
    'g'
    

    二、Python Web 编程

    三、Python 多线程编程

    四、Python 网络编程

    五、Python 数据库编程

  • 相关阅读:
    从标准输入读取一行字符串的方法
    输入文件包含若干行,不知何时结束时,如何读入数据
    centos7.5 + docker + mysql5.7 多实例安装
    copula函数及其Var计算的Python实现
    让网络机器人看起来像人类用户
    流畅的python读书笔记
    神经网络层数和神经元数目 的一些建议
    SVM算法Python实现
    预测性维护{维修}又称:预知性、预见性维护{维修})
    WebDriver API 元素定位(Python)
  • 原文地址:https://www.cnblogs.com/crisimple/p/12905713.html
Copyright © 2011-2022 走看看