-
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读取httponly的cookie方法
2020-08-31 13:04:50下面小编就为大家带来一篇httpwebreqeust读取httponly的cookie方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
获取 httponly 的 cookie
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)实例分享
2020-10-26 20:30:27介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下 -
怎样获取和使用httponly=1的Cookie
2021-08-15 19:23:071、传统方法不能获取到完整的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#如何通过Socket的方式获取httponly cookie
2013-07-20 14:16:00正常情况下C#可以使用HttpWebRequest、HttpWebResponse和CookieContainer类来获取Cookie,但是当Cookie设置为httponly,我们就不能用上面的方法获取。这时候可以用Socket来模拟http提交。具体如下: 1.先取得默认DNS... -
java服务器端获取Cookie的httpOnly的值总是false,奇怪了?
2021-03-18 04:25:20java服务器端获取Cookie的httpOnly的值总是false,奇怪了? -
js无法读取httponly属性的cookie
2020-07-14 16:55:47httponly属性的cookie只能在服务器进行操作, 前端js是没法获取和修改的 -
完整获取webBrowser1.Document.Cookie取不到HttpOnly的Cookie
2013-06-08 16:25:27完整获取webBrowser1的Cookie HttpOnly的Cookie -
Jquery Ajax CORS + HttpOnly Cookie
2021-08-07 00:17:23I 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 Cookie HTTP获取cookie并处理
2021-10-09 17:44:23本期Python培训教程是教大家如何进行HTTP获取cookie并处理的方法,希望本期教程能够给大家带来帮助,请看以下详细内容介绍。 Cookie模块同样是Python标准库中的一员,它定义了一些类来解析和创建HTTP 的 cookie... -
获取cookie中某个属性的值 || 设置cookie对应属性HttpOnly,samesite,Secure
2019-05-16 13:16:58先聊聊获取cookie后去空格:在我另一篇文章中 之后直接来代码: var user_cookie = getCookie2('userName'); //调用 注意:cookie名要加引号才行 $('#userName').val(user_cookie) //赋值 function getCookie2... -
关于获取受httponly属性保护的cookie的思考
2019-03-26 17:31:00如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,主要影响就是XSS攻击中无法通过document对象直接获取到cookie。 如何绕过 首先需要明确的是,因为无法通过js脚本获得cookie信息... -
js获取cookie获取不到,vue3获取cookie
2021-12-21 15:13:29js获取cookie获取不到,vue3获取cookie -
HostOnly Cookie和HttpOnly Cookie
2021-08-07 00:15:40通常我们有两种方式给浏览器设置或获取Cookie,分别是HTTP Response Headers中的Set-Cookie Header和HTTP Request Headers中的Cookie Header,以及通过JavaScript对document.cookie进行赋值或取值。rfc6265第5.2节... -
VB通过webbrowser获取httponly的cookie
2017-09-15 14:25:17大家都知道webbrowser是...是获取不到httponly的cookie的! 相信各位百度到这篇文章,也是同样遇到小编遇到的问题了! 小编找了很久,,在网上找到以下解决方法 出处:http://www.cnblogs.com/nanfei/p/4106498.html -
puppeteer设置cookie获取网页内容
2021-08-23 19:02:13使用puppeteer进行页面渲染的时候因为要登录才能获取到数据,我们不想走登录流程,想直接把cookie设置好,就需要设置cookies。 按照下面的方式进行设置 const cookies = { url: url, name: '', value: '' }; ... -
HTTP-only Cookie 脚本获取JSESSIONID的方法
2017-08-21 09:34:49HTTP-only Cookie 脚本获取JSESSIONID的方法 实现隐藏sessionid -
通过selenium获取浏览器的cookie等头部信息
2022-02-24 16:42:03通过selenium获取浏览器的cookie等头部信息 一、背景介绍 对于部分有登陆限制的网站/APP我们无法通过登陆接口实现登陆(比如验证码) 但是我们还想绕过登陆接口通过接口来实现一些操作,毕竟UI自动化比较慢。 想到了... -
读取httponly cookie
2014-07-02 14:44:33http://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插件api获取所有网站的cookie信息
2021-11-26 10:43:55谷歌插件 chrome.cookies.getAll API获取登录网站的cookie信息 -
.net 获取浏览器Cookie(包括HttpOnly)实例分享.docx
2022-01-14 14:06:18.net 获取浏览器Cookie(包括HttpOnly)实例分享.docx -
cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip_js设置...
2021-01-07 13:45:44java后台和php后台如何设置HttpOnly到前台浏览器的cookie中.cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击.zip