首页 > 编程语言 >渗透测试中利用Python实现自动化案例分享-自动提取靶机网页特定内容

渗透测试中利用Python实现自动化案例分享-自动提取靶机网页特定内容

时间:2023-03-13 23:11:26浏览次数:40  
标签:__ 网页 Python text url 靶机 response

渗透测试中利用Python实现自动化案例分享-自动提取靶机网页特定内容

靶机信息

靶机名称:Vulnhub:Samsara

靶机地址:

https://www.vulnhub.com/entry/samsara-1,643/

场景描述

在Kali Linux利用浏览器发现访问url有一定规律,即增加数字,返回的信息不同:

http://192.168.56.254/1-index.html

如:2-index.html, 3-index.html......将返回不同的信息

此时当然可以用人工的方式逐个访问,直到URL不存在为止,但是这种方式效率较低,也容易出错,可以用Python代码来自动化该过程。

Python代码实现

import requests
import sys
import re


def retrieve(url):
    # 下载网页函数,参数为url

    try:
        response = requests.get(url)
        if response.status_code == 200:
            # 当返回响应状态码为200,表明该URL存在,因此返回页面的内容
            return response.text
        else:
            # 当返回响应状态码为其他码时,比如400等,表明该URL不存在
            return False
    except Exception as e:
        print("Something is wrong: %s" % e)
        sys.exit()

def extract_chr(content):
    # 利用正则表达式对页面内容提权特定信息

    pattern = r'<h2>I am\s+(.*)\s+</h2>'
    result = re.findall(pattern,content)
    if len(result) > 0:
        
        return result[0]
   
def main():
    text = ""
    i = 1
    while True:
        url = 'http://192.168.56.254/%d-index.html' % i
        response = retrieve(url)
        if not response:
            #表明无需再递增i了,可以退出循环 
            break
        
        if response:
            text = text + extract_chr(response)        

        i = i+1
    print(text)

if __name__ == '__main__':
    main()







运行结果:

──(kali㉿kali)-[~/Vulnhub/So_simple]
└─$ python extract.py
Soyouareheretoknowhisname.Sorry,Idon'tknowhisnamebutIhaveamessageforyou:@UX=h@rGmh/otH<F(')t/n8g:

标签:__,网页,Python,text,url,靶机,response
From: https://www.cnblogs.com/jason-huawen/p/17213319.html

相关文章

  • 实验一 Python开发环境使用和编程初体验
      实验任务1task1-1实验源码1#print输出用法23#单个变量4print('hey,u')5#多个数据项6print('hey','u')7x,y,z=1,2,38print(x,y,z)9......
  • Python基础核心概念(1)
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 一入python情似海,从此妹纸是路人(四)
    一、集合1、定义:用大括号包围元素,元素之间用逗号隔开"特性:无序不重复""集合是无序的,不支持下标"s1={10,20,30,30,50}print(s1)输出:{10,20,50,30}2、集合的函数......
  • 实验1 Python开发环境使用和编程初体验
    实验任务1  print('hey,u')print('hey','u')x,y,z=1,2,3print(x,y,z)print('x=%d,y=%d,z=%d'%(x,y,z))print('x={},y={},z={}'.format(x,y,z)......
  • python中的shutil模块
    Python的Shutil模块可以看做是OS模块的补充,它提供了对文件(夹)复制,移动,删除,压缩和解压缩的方法。一、文件复制1.shutil.copy(src,dst)src为源文件路径(必须是文件),dst......
  • Unpack and pass list, tuple, dict to function arguments in Python
    reprinted:note.nkmk.me-Unpackandpasslist,tuple,dicttofunctionargumentsinPythonInPython,youcanunpacklist,tuple,dict(dictionary)andpassits......
  • python
    1ans1=0.1+0.22print(f'0.1+0.2={ans1}')34importdecimal56ans2=decimal.Decimal('0.1')+decimal.Decimal('0.2')7print(f'0.1+0.2={ans2}')ViewCode......
  • python - ddddocr验证码识别
    1.ddddocr安装建议使用国内镜像安装pip3installddddocr-ihttps://pypi.tuna.tsinghua.edu.cn/simple2.图片验证码importddddocrocr=ddddocr.DdddOcr(show_a......
  • python数据分析
    importmatplotlib.pyplotaspltimportpandasaspddatafile='air_data.csv'resultfile='explore.csv'data=pd.read_csv(datafile,encoding='utf-8')explore=da......
  • python中的文件处理模块
    4种读法:如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:#read():将文件中内容全部取出来#re......