powershell 模拟IE行为

本来是想尝试使用curl模拟post向新浪发送微博,但是试了几次都没有成功。看到一些文章于是想到可以使用powershell模拟IE的动作来做。发现这样做更为简便

1 可以先用IE来自动读取cookie,而不用在代码中直接设置cookie

2 powershell是模拟正常用户的行为,服务器端几乎无法对这种行为进行禁止

3 代码简单,容易进行修改

 

下面是powershell的代码(运行前先手动使用IE登录微博,并让IE记录用户名和密码,记录cookie)

function NavigateIE($url)
{
    $ie = new-object -com "InternetExplorer.Application";
    $ie.navigate($url);
    #ie.visible=ie.visible=true;
    [System.Threading.Thread]::Sleep(2000);
    return $ie;
}

function FindTag($params)
{
    $ie = $params[0];
    $tagname = $params[1];
    $contain = $params[2];
    $doc = $ie.document;
    $tags = @($doc.getElementsByTagName($tagname));
    foreach($tag in $tags)
    {
        if($tag.outerHTML.contains($contain))
        {
            $sel = $tag;
            break;
        }
    }
    return $sel;
}

$ie = NavigateIE("http://weibo.com/12321");

$talk = FindTag($ie, "textarea", 'id=publish_editor');

$but = FindTag($ie, "span", 'class=bgColorB');

$talk.value = "test";
$but.click(); 

 

主要的函数是:NavigateIE和FindTag,一个函数阅读为打开IE,一个函数阅读为找到标签

 

代码的流程就是:  打开IE -- 找到输入框 -- 填写信息 -- 找到提交按钮 -- 单击提交按钮

很简洁明了

 

PS:这个代码不是针对新浪微博的行为。只是闲来无事的实验。

 

个人认为这种方法应该可以使用在为网站的测试人员做模拟测试,因为这个代码操作就是和人的行为操作是完全一致的。能很好的模拟人的行为,也有更强的说服力。但是现在还没遇到实际的情况使用。

 

 

作者:轩脉刃(yjf512) 
出处:(http://www.cnblogs.com/yjf512/) 
版权声明:本文的版权归作者与博客园共有。欢迎转载阅读,转载时须注明本文的详细链接。

时间: 2024-12-09 21:11:02

powershell 模拟IE行为的相关文章

测试运行: 使用Windows PowerShell进行请求/响应测试

最基本的 Web 测试格式是 HTTP 请求/响应测试.包括通过编程方式向 Web 应用程序发送 HTTP 请求.提取 HTTP 响应以及检查响应是否为预期值. 如果需要针对 ASP.NET 应用程序执行请求/响应测试,有许多可供选择的方法.您可编写 C# 或 Visual Basic 控制台应用程序.也可编写 JavaScript 或 Perl 脚本.如果您的起点很高,可以编写 C/C++ 程序.现在,Windows PowerShell 也能用于这一领域. 我使用过许多这样的技术,而 Win

不可阻挡的PowerShell :Red Teamer告诉你如何突破简单的AppLocker策略

本文讲的是不可阻挡的PowerShell :Red Teamer告诉你如何突破简单的AppLocker策略,从目前的攻击发展趋势来看,攻击者已经比大多数防御者或系统管理员更喜欢使用PowerShell.像Powersploit,Veil Power *和Nishang这样的工具的一些常规功能已经被Red Team,Pentesters,恶意攻击者们所使用.随着这种演变以及将技术整合成一种单一的脚本语言,防御者能否发现一种方法来成功的阻止PowerShell的执行?当然,软件限制策略(SRP)或A

在msf和powershell中利用hotpotato进行提权

本文讲的是在msf和powershell中利用hotpotato进行提权,通过类似SMB协议的NTLM认证已经被微软修补了,不过HTTP到SMB正在使用这种验证,并且还用于创建高权限服务中.因为流量包中含有NTLM凭据并且正在通过伪代理服务器,因此可以将其捕获并传递到本地SMB侦听器,作为SYSTEM权限执行任何命令. Stephen Breen在他的博客(https://foxglovesecurity.com/2016/01/16/hot-potato/)中描述了这次攻击的所有阶段.这次攻击

关于powershell中remove-appxpackage命令

问题描述 我遇到的问题是这样的如果当前用户是普通用户或者访客那么我程序获取的UAC管理员权限程序启动的进程就不是当前用户启动了而是管理员用户启动进程可以在任务管理器中查看到进程的用户名是管理员但是我现在我程序中需要卸载app用ShellExecute来启动powershell的话powershell就自带了管理员权限也就是说启动的powershell这个进程是由管理员启动的不是当前用户问题来了当我在powershell中使用remove-appxpackage卸载app它卸载的不是当前登录用户的

PowerShell调用Web测试工具Selenium实例_PowerShell

什么是Selenium Selenium是一款著名的web应用程序测试工具,它能通过在浏览器中模拟用户的动作来完成测试,其api支持java,c#,python,ruby,php,perl,javascript这些主流编程语言和脚本语言.Selenium还支持IE,火狐,和chrome等主流浏览器. PowerShell 如何直接调用Selenium PowerShell直接调用Selenium,其实类似PowerShell调用C#方法.以IE浏览器为例,至少需要具备两个文件: 1.IEDriv

PowerShell小技巧之发送TCP请求_PowerShell

很多时候我们需要通过Socket发送特定的TCP请求给服务器的特定端口来实现探测服务器的指定端口所开启的服务.很多语言都有相应的方法实现上述需求,当然,PowerShell也不例外,比如我们要发送一个简单的http请求到指定的web服务器: GET / HTTP/1.1 Host:cn.bing.com 这里我们想请求微软必应的中文首页,如果需要通过PowerShell向cn.bing.com服务器发送get请求,就需要创建一个System.Net.Sockets.TcpClient对象,向指定

PowerShell函数中的开关参数介绍和创建实例_PowerShell

本文介绍什么是开关参数,在PowerShell自定义函数中,如何创建开关参数并使用开关参数的值. 什么叫开关参数呢?举个例子,技术男一般都知道有一个网络命令叫"Ping",我们可以使用"ping www.jb51.net"这样一个命令来检查本地计算机到www.jb51.net这个网站所在的服务器网络是否连通.这个命令会从本地发送4个数据包到www.jb51.net服务器,并显示每个数据包是否收到了反馈结果.如果我正在重启www.jb51.net这台服务器,那么pin

Powershell错误处理之what-if_PowerShell

自动化具有高度方便的特点,同时也可能会自动产生一些不可避免的错误.这也就是Powershell为什么会有一些专门来防止和处理危险的机制:这些机制会对接下来要执行的操作进行确认. 试运行:模拟操作 如果你想知道一个确定的命令会产生什么影响,你可以进行试运行.这时,Powershell不会执行任何对系统有影响的操作,只会告诉你如果没有模拟运行,可能产生什么影响和后果.通过-whatif 参数.事实上,许多cmdltes都支持试运行. #如果执行stop-process -name *a*会终止下面的

阿里云发布异构计算产品家族,你可以在上面模拟核爆炸

本文讲的是阿里云发布异构计算产品家族,你可以在上面模拟核爆炸 数据.算力和算法,这是人工智能发展的三大要素. 近一年来,人工智能迎来了史上第三次热潮.移动互联网时代沉淀下来的大量数据和GPU近几年的快速发展,让学界和业界相信,这人工智能时代真的要来了. 由于人工智能模型训练对算力的要求,原有的通用型CPU架构无法满足,不少企业或科研机构在训练模型的时候会通过采用和主处理器(CPU)不同架构的加速器件(也就是所谓"异构"),如GPU.FPGA.ASIC等器件,提供高密度并行计算的运算能力