精华内容
下载资源
问答
  • 使用HttpWebRequest获取HttpOnly cookie
    2021-03-15 18:21:58

    我正在尝试使用.NET的HttpWebRequest POST方法以编程方式登录站点(代码用C#编写) . 最初我将请求发送到登录页面,将响应cookie保存到CookieContainer,并使用登录详细信息(email =“MyEmail”&pass =“MyPassword”)进行第二次HttpWebRequest编码并流式传输到请求 .

    由于我没有设法登录,我使用Fiddler检查了登录请求附带的cookie,发现一些cookie被标记为HttpOnly . 也就是说,这些cookie不会出现在先前请求的任何响应头中(不用说它们也不会出现在脚本中(html或js)) .

    我做了一些研究并将Wininet.dll库导入到我的代码中,如here所述 . 这是我的代码:

    class CookieReader

    {

    static int INTERNET_COOKIE_HTTPONLY = 0X000020000;

    [DllImport("Wininet.dll", SetLastError = true)]

    static extern bool InternetGetCookieEx(string url, string cookieName, StringBuilder cookieData, ref int size, int flags, IntPtr pReserved);

    public static string GetHttpOnly(string url)

    {

    int size = 1024;

    StringBuilder builder = new StringBuilder(size);

    if (InternetGetCookieEx(url, null, builder, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))

    {

    return builder.ToString();

    }

    else

    return null;

    }

    }

    我有两个问题:首先,对于任何URL,InternetGetCookiesEx方法总是返回false . 由于我是C#的新手,我的第一个怀疑是我的代码出了问题 .

    其次,我无法想出一种方法将HttpWebRequest POST与InternetGetCookieEx方法结合起来 . 这个方法只获取一个url作为参数,没有任何登录细节,我不知道它是如何产生请求的(我想它确实如此) .

    我希望我已经清楚了...建议将非常(非常感谢)赞赏 .

    更多相关内容
  • 下面小编就为大家带来一篇httpwebreqeust读取httponlycookie方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 获取 httponlycookie

    2021-03-15 18:22:28
    /// /// WinInet.dll wrapper/// internal static class CookieReader{/// /// Enables the retrieval of cookies that are marked as "HTTPOnly"./// Do not use this flag if you expose a scriptable interface,/...

    ///

    /// WinInet.dll wrapper

    ///

    internal static class CookieReader

    {

    ///

    /// Enables the retrieval of cookies that are marked as "HTTPOnly".

    /// Do not use this flag if you expose a scriptable interface,

    /// because this has security implications. It is imperative that

    /// you use this flag only if you can guarantee that you will never

    /// expose the cookie to third-party code by way of an

    /// extensibility mechanism you provide.

    /// Version: Requires Internet Explorer 8.0 or later.

    ///

    private const int INTERNET_COOKIE_HTTPONLY = 0x00002000;

    [DllImport("wininet.dll", SetLastError = true)]

    private static extern bool InternetGetCookieEx(

    string url,

    string cookieName,

    StringBuilder cookieData,

    ref int size,

    int flags,

    IntPtr pReserved);

    ///

    /// Returns cookie contents as a string

    ///

    ///

    ///

    public static string GetCookie(string url)

    {

    int size = 512;

    StringBuilder sb = new StringBuilder(size);

    if (!InternetGetCookieEx(url, null, sb, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))

    {

    if (size < 0)

    {

    return null;

    }

    sb = new StringBuilder(size);

    if (!InternetGetCookieEx(url, null, sb, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))

    {

    return null;

    }

    }

    return sb.ToString();

    }

    }

    展开全文
  • 如何获取HttpOnly Cookie

    千次阅读 2011-06-26 08:05:00
    // 我这个博客转载这么多技术性文章,... 1、更改webbrowser的cookie路径2、延时1秒,启动webbrowser3、更改webbrowser的cookie路径为原来的4、登录账号5、记录下cookie6、设置cookie, internetsetcookie7、测试是否成

    // 我这个博客转载这么多技术性文章,是为了以后学习要用,到时候遇到困难,不需要东找西拼。-__- ~真是不简单啊~。

     

    1、更改webbrowser的cookie路径

    2、延时1秒,启动webbrowser

    3、更改webbrowser的cookie路径为原来的

    4、登录账号

    5、记录下cookie

    6、设置cookie, internetsetcookie

    7、测试是否成功

     

    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    uses unitFunc;

    function GetIECookiePath():string;
    var
        UserProfile :string;
        Key ,Name ,CookiePath ,CachePath :string;
    begin
        UserProfile := GetEnvironmentVariable('USERPROFILE'); //获取环境变量

        //...1、Cookies 文件夹路径
        Key := 'Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders';
        Name := 'Cookies';
        CookiePath := regRead(HKEY_CURRENT_USER ,Key ,Name);
        CookiePath := StringReplace(CookiePath,'%USERPROFILE%',UserProfile,[rfReplaceAll]);

        //...2、Cache 文件夹路径
        Key := 'Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders';
        Name := 'Cache';
        CachePath := regRead(HKEY_CURRENT_USER ,Key ,Name);
        CachePath := StringReplace(CachePath,'%USERPROFILE%',UserProfile,[rfReplaceAll]);

        Result := CookiePath;
    end;


    procedure TForm1.Button1Click(Sender: TObject);
    var
        CookiePath :string;
        fs :TFileStream;
        ms :TMemoryStream;
        ss :TStringStream;
    begin
        CookiePath := GetIECookiePath + '/index.dat';

        fs := TFileStream.Create(CookiePath,fmShareDenyNone);
        ms := TMemoryStream.Create;
        ss := TStringStream.Create('');
        try
            fs.Position := 0;
            ms.CopyFrom(fs,fs.Size);
            fs.Position := 0;
            ss.CopyFrom(fs,fs.Size);
        finally
            fs.Free;
        end;
        memo1.Text := ss.DataString;
        ss.Free;
        ms.Free;
    end;

    end.

    http://hi.baidu.com/vovolololo/blog/item/86d9a402d14a2182d43f7c5b.html


    资料:
    %WINDIR% {系统目录 - C:/WINDOWS}
    %SYSTEMROOT% {系统目录 - C:/WINDOWS}
    %SYSTEMDRIVE% {系统根目录 - C:}
    %HOMEDRIVE% {当前用户根目录 - C:}
    %USERPROFILE% {当前用户目录 - C:/Documents and Settings/wy}
    %HOMEPATH% {当前用户路径 - /Documents and Settings/wy}
    %TMP% {当前用户临时文件夹 - C:/DOCUME~1/wy/LOCALS~1/Temp}
    %TEMP% {当前用户临时文件夹 - C:/DOCUME~1/wy/LOCALS~1/Temp}
    %APPDATA% {当前用户数据文件夹 - C:/Documents and Settings/wy/Application Data}
    %PROGRAMFILES% {程序默认安装目录 - C:/Program Files}
    %COMMONPROGRAMFILES% {文件通用目录 - C:/Program Files/Common Files}
    %USERNAME% {当前用户名 - wy}
    %ALLUSERSPROFILE% {所有用户文件目录 - C:/Documents and Settings/All Users}
    %OS% {操作系统名 - Windows_NT}
    %COMPUTERNAME% {计算机名 - IBM-B63851E95C9}
    %NUMBER_OF_PROCESSORS% {处理器个数 - 1}
    %PROCESSOR_ARCHITECTURE% {处理器芯片架构 - x86}
    %PROCESSOR_LEVEL% {处理器型号 - 6}
    %PROCESSOR_REVISION% {处理器修订号 - 0905}
    %USERDOMAIN% {包含用户帐号的域 - IBM-B63851E95C9}
    %COMSPEC% {C:/WINDOWS/system32/cmd.exe}

    %PATHEXT% {执行文件类型 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pyo;.pyc;.py;.pyw}
    %PATH% {搜索路径}

    例如将一个带背景的LABEL变成一个TIMAGE图片类型,可以这样做:
    image1.width:=label1.width;
    image1.height:=label1.height;
    label1.perform(WM_PAINT,image1.Canvas.Handle,0);

    展开全文
  • 介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下
  • 1、传统方法不能获取到完整的Cookie 在我们访问网站时,网站把用户数据保存在Cookie中,Cookie...2、httponly是什么Cookie 对比document.cookie和提交数据的http协议头,发现http协议头多出几项内容来,比如“BD...

    1、传统方法不能获取到完整的Cookie

           在我们访问网站时,网站把用户数据保存在Cookie中,Cookie一般存放在用户浏览器的文件夹,具体存储方式,不同的浏览器不尽相同。怎样获得网站Cookie内容呢,只需要执行javascript脚本"document.cookie;"。这是大多数人的做法,发现它只能获取部份cookie。


    2、httponly是什么Cookie

           对比document.cookie和提交数据的http协议头,发现http协议头多出几项内容来,比如“BDUSS"。原来cookie有一个参数httponly,如果httponly=0,允许客户端读取和使用,也就是document.cookie读取到的内容,如果httponly=1时,只允许网站服务器读取和使用的cookie,本地不能获取这些cookie内容。但是聪明的你马上就会有想法,既然cookie保存在本地,总会有办法读取和使用的,只不过要费些周折。



    3、保存网站Cookie

          Cookie保存在本地电脑,为什么我们还要保存一次呢?因为Cookie只保存访问网站的一套Cookie,这里是把Cookie另存到一个特定的地方,同一个网站可以保存多套Cookie。然后每次从保存的Cookie中取出一套出来使用,从而达到切换Cookie目的。
          首先在木头浏览器中打开网站,并登录一个帐号,这样就生成Cookie且被浏览器自动保存了。工具栏里有一个Cookie按钮,使用鼠标右键点击Cookie按钮,弹出快捷菜单,选择保存Cookie菜单项,给这一套Cookie取个名字,就把这个Cookie保存到一个特殊的列表里了。可以看到这里成功将httponly=1的Cookie导出到列表了。


    4、管理Cookie的工具
          打开设置菜单中的”Cookie管理“,弹出Cookie管理窗口,在这里可以添加Cookie保存到列表中、修改列表中的Cookie、删除列表中的Cookie。可添加多个网站的Cookie保存到列表中,同一网站也可以添加多个账号的Cookie。在这个窗口的所有操作不影响当前网页的Cookie。

     



    5、手工一键切换Cookie
          如果系统Cookie列表中保存有当前网站的Cookie,只需要点击浏览器工具栏中的Cookie按钮,就能切换Cookie;也可以右键点击这个按钮,会弹出选择菜单,可选择不同帐号的Cookie,达到一键切换帐号的目的。切换Cookie后,浏览器会自动刷新页面,使用Cookie生效。
     



    6、自动切换Cookie
          在浏览器的项目管理器中,新建一个模拟伪装的步骤,可以设置按顺序切换列表中的Cookie,或者随机使用列表中的Cookie。项目每次执行到这一步时,都能自动切换Cookie。
     



    7、发送Http请求使用Cookie
          在浏览器的项目管理器中新建一个http请求步骤,设定请求的网址和请求方式(Post或Get)。打开http协议头设置选项卡,添加cookie参数,可以选择参数为固定内容,直接输入Cookie的值;也可以从Excel或txt文件中读取Cookie内容,具体方法跟自动填表一样;还可以使用当前网页的Cookie或者从系统列表中调取Cookie。这里也能成功调取httponly=1的cookie值。



    8、查看运行变量中的Cookie

          点击项目管理器中的变量按钮,可以查看方案运行过程中产生的所有临时变量。选择Http请求,即可看到上一步项目执行过程中产生的变量,其中包括Cookie内容。复制Cookie内容保存到记事本查看,可以找到httponly=1的cookie。
     



    9、调用和输出Cookie
          在项目管理器中,新建一个脚本代码步骤,脚本功能为获取上一步看到的Cookie变量,并输出显示变量内容。与document.cookie不同的是,现在输出了httponly=1的cookie。
     


     

    展开全文
  • 正常情况下C#可以使用HttpWebRequest、HttpWebResponse和CookieContainer类来获取Cookie,但是当Cookie设置为httponly,我们就不能用上面的方法获取。这时候可以用Socket来模拟http提交。具体如下: 1.先取得默认DNS...
  • java服务器端获取CookiehttpOnly的值总是false,奇怪了?
  • js无法读取httponly属性的cookie

    千次阅读 2020-07-14 16:55:47
    httponly属性的cookie只能在服务器进行操作, 前端js是没法获取和修改的
  • 完整获取webBrowser1的Cookie HttpOnlyCookie
  • I have got CORS working on my current project, although one thing I cannot seem to get working correctly is the cookies.Now I get the cookie fine, the server issues it and sends it down and firefox ac...
  • 本期Python培训教程是教大家如何进行HTTP获取cookie并处理的方法,希望本期教程能够给大家带来帮助,请看以下详细内容介绍。  Cookie模块同样是Python标准库中的一员,它定义了一些类来解析和创建HTTP 的 cookie...
  • 先聊聊获取cookie后去空格:在我另一篇文章中 之后直接来代码: var user_cookie = getCookie2('userName'); //调用 注意:cookie名要加引号才行 $('#userName').val(user_cookie) //赋值 function getCookie2...
  • 如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,主要影响就是XSS攻击中无法通过document对象直接获取cookie。 如何绕过 首先需要明确的是,因为无法通过js脚本获得cookie信息...
  • js获取cookie获取不到,vue3获取cookie
  • 通常我们有两种方式给浏览器设置或获取Cookie,分别是HTTP Response Headers中的Set-Cookie Header和HTTP Request Headers中的Cookie Header,以及通过JavaScript对document.cookie进行赋值或取值。rfc6265第5.2节...
  • VB通过webbrowser获取httponlycookie

    千次阅读 2017-09-15 14:25:17
    大家都知道webbrowser是...是获取不到httponlycookie的! 相信各位百度到这篇文章,也是同样遇到小编遇到的问题了! 小编找了很久,,在网上找到以下解决方法 出处:http://www.cnblogs.com/nanfei/p/4106498.html
  • 使用puppeteer进行页面渲染的时候因为要登录才能获取到数据,我们不想走登录流程,想直接把cookie设置好,就需要设置cookies。 按照下面的方式进行设置 const cookies = { url: url, name: '', value: '' }; ...
  • HTTP-only Cookie 脚本获取JSESSIONID的方法 实现隐藏sessionid
  • 通过selenium获取浏览器的cookie等头部信息 一、背景介绍 对于部分有登陆限制的网站/APP我们无法通过登陆接口实现登陆(比如验证码) 但是我们还想绕过登陆接口通过接口来实现一些操作,毕竟UI自动化比较慢。 想到了...
  • 读取httponly cookie

    千次阅读 2014-07-02 14:44:33
    http://www.oschina.net/translate/xss-gaining-access-to-httponly-cookie?print (翻译得很烂,原文:http://seckb.yehg.net/2012/06/xss-gaining-access-to-httponly-cookie.html) ...
  • 谷歌插件 chrome.cookies.getAll API获取登录网站的cookie信息
  • .net 获取浏览器Cookie(包括HttpOnly)实例分享.docx
  • java后台和php后台如何设置HttpOnly到前台浏览器的cookie中.cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,043
精华内容 7,217
关键字:

获取httponly的cookie