从c#应用程序登录joomla
发布时间:2020-12-15 17:19:01 所属栏目:百科 来源:网络整理
导读:我使用很多方法登录到joomla管理面板. 但返回的值与登录页面相同. 即使用户名和密码正确. 例: WebClient Client = new WebClient();System.Collections.Specialized.NameValueCollection Collection = new System.Collections.Specialized.NameValueCollect
我使用很多方法登录到joomla管理面板.
但返回的值与登录页面相同. 即使用户名和密码正确. 例: WebClient Client = new WebClient(); System.Collections.Specialized.NameValueCollection Collection = new System.Collections.Specialized.NameValueCollection(); Collection.Add("username","--my username--"); Collection.Add("passwd","--my password--"); Collection.Add("option","com_login"); Colletion.Add("e0484cdc56d8ccc42187d26a813324ba","1"); Collection.Add("lang",""); Client.Proxy = null; byte[] res = Client.UploadValues( "http://127.0.0.1/administrator/index.php","POST",Collection); textBox1.Text = Encoding.UTF8.GetString(res,res.Length); 解决方法
问题出在这一行:
Colletion.Add("e0484cdc56d8ccc42187d26a813324ba","1"); 这是joomla的CSRF反欺骗令牌.的Joomla!尝试通过在每个POST表单中插入一个此令牌以及能够修改Joomla中的某些内容的每个GET查询字符串来保护全新CSRF!系统.此随机字符串提供保护,因为受感染的站点不仅需要知道目标站点的URL和目标站点的有效请求格式,还必须知道每个会话和每个用户更改的随机字符串. 为了使用您的登录请求发送正确的令牌,您必须: >首先使用“客户端对象”请求通过GET请求正确的登录表单 祝好运 编辑:给你的“收藏”添加一个参数: Collection.Add("task","login"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |