`
zhang310
  • 浏览: 738 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java模拟登录dedecms 登录成功后 回话不存在 访问其他页面提示 登录

阅读更多
方式一 : 


import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.junit.Test;
 
public class HttpClientLogin {
 
    public static void main(String[] args){
        //登陆 Url
        String loginUrl = "http://v57.demo.dedecms.com/dede/login.php";
 
        //需登陆后访问的 Url
        String dataUrl = "http://v57.demo.dedecms.com/dede/index.php";
 
        HttpClient httpClient = new HttpClient();
 
        //模拟登陆,按实际服务器端要求选用 Post 或 Get 请求方式
        PostMethod postMethod = new PostMethod(loginUrl);
 
        //设置登陆时要求的信息,一般就用户名和密码,验证码自己处理了
        NameValuePair[] data = {
                new NameValuePair("userid","admin"),
                new NameValuePair("pwd", "admin"),
                new NameValuePair("gotopage", ""),
                new NameValuePair("dopost", "login"),
                new NameValuePair("adminstyle", "newdedecms")
        };
        
        postMethod.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36");
        postMethod.setRequestBody(data);
        
        try {
            //设置 HttpClient 接收 Cookie,用与浏览器一样的策略
            httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
            httpClient.executeMethod(postMethod); 
            //输出登录成功页面
            System.out.println(postMethod.getResponseBodyAsString());
            System.out.println("======================================");
            //获得登陆后的 Cookie
            Cookie[] cookies=httpClient.getState().getCookies();
            String tmpcookies= "";
            for(Cookie c:cookies){
                tmpcookies += c.toString()+";";
            }
 
            //进行登陆后的操作
            GetMethod getMethod = new GetMethod(dataUrl);
            
            
            //每次访问需授权的网址时需带上前面的 cookie 作为通行证
            getMethod.setRequestHeader("Cookie",tmpcookies);
            
            System.out.println("tmpcookies【"+tmpcookies+"】");
 
             //你还可以通过 PostMethod/GetMethod 设置更多的请求后数据
            //例如,referer 从哪里来的,UA 像搜索引擎都会表名自己是谁,无良搜索引擎除外
            postMethod.setRequestHeader("Referer", "http://v57.demo.dedecms.com/dede/login.php");
            postMethod.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36");
 
            httpClient.executeMethod(getMethod);
 
            //打印出返回数据,检验一下是否成功
            String text = getMethod.getResponseBodyAsString();
            System.out.println(text);
 
        } catch (Exception e) {
            e.printStackTrace();
        }   
    }
}





java模拟登录dedecms   登录成功后  回话不存在 访问其他页面提示 登录










方式2 Htmlunit


package tv.zjj.admintools.dedecms;

import java.net.URL;
import java.util.Arrays;

import org.apache.commons.httpclient.cookie.CookiePolicy;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.HttpMethod;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.util.NameValuePair;

public class HtmlunitUtil {
	
	public static WebRequest request;
	 
	private final static String LOGIN_URL="/login.php";
	
	private final static String ADD_URL="/article_add.php?channelid=1";
	
	private final static String ADD_ACTION_URL="/article_add.php?channelid=1&dopost=save";
	
	public static void main(String[] args) {
		WebClient client = login("http://v57.demo.dedecms.com/dede/", "admin", "admin", "gbk");
		System.out.println(client);
	}
	
	public static WebClient login(String host, String uerName, String password, String charset){
		WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
		try {
			webClient.getCookieManager().setCookiesEnabled(true);
			webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
			webClient.getOptions().setThrowExceptionOnScriptError(false);
			webClient.getOptions().setCssEnabled(false);
			webClient.getOptions().setActiveXNative(true);
			webClient.getOptions().setAppletEnabled(true);
			webClient.getOptions().setJavaScriptEnabled(true);
			webClient.getOptions().setTimeout(30000);
			
			request=new WebRequest(new URL(host+LOGIN_URL),HttpMethod.POST);
			request.setCharset("gbk");
	        request.setRequestParameters(Arrays.asList(
	                new NameValuePair("userid",uerName),
	                new NameValuePair("pwd", password),
	                new NameValuePair("gotopage", ""),
	                new NameValuePair("dopost", "login"),
	                new NameValuePair("adminstyle", "newdedecms")
	        		));
	        

	        HtmlPage p = webClient.getPage(request); 
	        
	        
	        if (p.getBody().getTextContent().indexOf("成功登录") > 0) {
	        	  
	        	request = new WebRequest(new URL("http://v57.demo.dedecms.com/dede/index.php"),HttpMethod.GET);	        	
	        	request.setAdditionalHeader("Referer", "http://v57.demo.dedecms.com/dede/index.php");
	        	//System.setProperty("apache.commons.httpclient.cookiespec", CookiePolicy.BROWSER_COMPATIBILITY);
	        	p = webClient.getPage(request);
	        	String content=p.asText();	        	
	        	System.out.println(":::"+content);
	            return webClient;
	        } else {
	            return null;
	        }
		} catch (Exception e) {
			System.out.println(e.toString());
		}		
		return null;
	}
	
	
	
	public static String doGet(WebClient client,String url ,String charset){
		 try {
			request = new WebRequest(new URL(url),HttpMethod.GET);
			request.setCharset(charset);			
			HtmlPage p = client.getPage(request);
			return p.getBody().asText();
		} catch (Exception e) {
			
		}		
		return null;
	}
	
}




htmlunit 方式也不行 
分享到:
评论

相关推荐

    Dedecms存在储存型跨站脚本漏洞1

    标题提及的"Dedecms存在储存型跨站脚本漏洞1"主要涉及到的是Dedecms网站管理系统的一个安全问题,具体来说,这是一个由于程序代码过滤不足导致的存储型跨站脚本( Stored Cross-Site Scripting, XSS )漏洞。Dedecms...

    PHP整合dedecms+ucenter+discuzX,实现单点登录.zip

    在这个项目中,通过uCenter,用户在任一系统登录后,其他两个系统的登录状态也会自动更新,实现了SSO功能。这大大提升了用户体验,减少了用户记忆多个密码的困扰,并简化了登录流程。 **5. 整合过程** 整合过程通常...

    dede后台单点登录-utf-8

    在织梦系统中,安装并启用该插件后,一旦管理员在一个设备上登录,其他设备上的会话将自动失效,从而防止了未授权的访问。这不仅增强了安全性,也简化了管理流程,降低了由于多设备登录可能带来的风险。 该插件支持...

    dede 登录及后台页面

    首先,织梦系统的登录页面是用户访问后台管理系统的第一步。这个页面通常包含用户名和密码输入框,以及登录按钮。用户需要输入正确的管理员账号和密码才能进入后台。为了保证安全性,织梦系统通常会使用HTTPS协议来...

    基于PHP的html5写的DeDecms后台登录页模板.zip

    如果包含JavaScript,可能是用于实现表单验证、提交前的提示或者增强交互效果,如使用AJAX无刷新登录。 在实际应用中,开发者可以根据项目需求对这个模板进行定制。例如,可以通过修改CSS调整登录界面的主题,以...

    html5写的DeDecms后台登录页模板 v2015.03.16.zip

    7. **音频和视频支持**:虽然登录页面可能不需要音频和视频元素,但HTML5的和标签提供了一种内联播放多媒体内容的便捷方式,如果登录页面有背景音乐或视频介绍,可能会用到这些特性。 8. **Web Workers和Web ...

    小俊最新织梦后台登录界面美化

    4. **交互设计**:登录过程中的反馈机制也很重要,如输入验证提示、错误信息显示等,要让用户清楚知道操作是否成功,以及如何改正错误。 5. **安全性**:虽然美化侧重于视觉效果,但安全也不容忽视。比如,登录表单...

    dedecms批量漏洞扫描.zip_dedecms_dedecms 扫描器_dedecms漏洞_dedecms路径扫描_批量扫描

    dedecms批量漏洞扫描,大家可以自己试试效果

    PHP实例开发源码—html5写的DeDecms后台登录页模板.zip

    通常,这会涵盖如何将模板文件上传到服务器、如何在DeDecms的配置中设置新的登录页面、以及可能存在的兼容性和安全注意事项。在实际操作前,阅读并遵循这些指导至关重要。 而“132692096079895044”可能是一个错误...

    织梦dedecms隐藏内容付费查看可见插件

    用户在访问这些内容时,会提示他们支付相应的金额,完成支付后,隐藏的内容将自动解锁。这样的设计既保护了网站的原创内容,也增加了用户的参与度和黏性,因为用户会更加珍惜自己付费获取的信息。 插件的安装过程...

    DedeCMS 存储型xss漏洞1

    要利用此漏洞,攻击者需要能够访问并操作DedeCMS后台的“系统”->“支付工具”->“配送方式设置”,在那里他们可以添加一个新的配送方式,将XSS payload 输入到“简要说明”字段中。一旦数据保存到数据库,payload ...

    DEDECMS5.7后台getshell1

    DEDECMS 5.7后台Getshell漏洞分析 DEDECMS 5.7后台Getshell漏洞是近期爆出的一个漏洞,该漏洞允许攻击者在DEDECMS 5.7后台上传恶意文件,从而获取服务器的控制权。下面我们将对这个漏洞进行深入分析。 漏洞成因 ...

    基于PHP的杨雨个人博客模板Dedecms版(不带程序)源码.zip

    2. 安装Dedecms:将Dedecms程序包上传至服务器,通过浏览器访问安装向导完成数据库配置和基础设置。 3. 导入模板:将提供的“基于PHP的杨雨个人博客模板Dedecms版”源码解压,将模板文件夹上传至Dedecms的`templets`...

    Dede后台验证码不显示三种解决方案

    在使用DedeCMS(织梦内容管理系统)的过程中,用户可能会遇到后台登录时验证码不显示的问题。这种情况不仅影响用户体验,还可能导致无法正常登录后台进行管理操作。本文将详细介绍Dede后台验证码不显示的三种常见...

    织梦的css 用户登录界面

    在这个"织梦的CSS用户登录界面"中,我们将探讨如何利用CSS来提升登录页面的视觉效果和交互性。 首先,`login.htm`是登录页面的HTML文件。HTML是页面结构的基础,用于定义元素如表单、输入框、按钮等。在织梦的登录...

    WIN10调整端口及DEDECMS打开页面.pdf

    标题中的"WIN10调整端口"涉及到的是Windows 10操作系统中对网络服务的配置,特别是关于端口号的修改。...通过以上步骤,用户可以在Win10环境下成功调整DEDECMS的端口,并确保DEDECMS网站能够正确打开和浏览。

    dede qq登录插件

    4. **获取授权码**:用户在QQ页面成功登录并同意授权后,QQ服务器会将一个授权码(code)发送回你之前设置的回调地址。 5. **交换Access Token**:使用AppID、AppKey和授权码,向QQ服务器请求Access Token,这是...

    织梦后台密码重置

    织梦内容管理系统(DedeCMS)是一款广泛使用的开源PHP网站管理平台,以其强大的自定义功能和易用性受到许多用户的青睐。然而,如同任何其他系统一样,用户有时可能会遇到忘记后台登录密码的情况。本篇文章将详细讲解...

    wLHK-Dedecms漏洞整理.pdf

    wLHK-Dedecms漏洞整理 从给定的文件信息中,我们可以看到该文件是关于Dedecms漏洞的整理报告,包含了多个漏洞的详情,包括SQL注入漏洞、XSS漏洞等。下面我们将对这些漏洞进行详细的分析和解释。 首先,我们来看第...

    Dedecms_20150618_member_sqli (2).py

    dedecms5.7sp1后台(要能够注册member的vip账户后台才可以)存在sql延时注入exp,用火狐得到账户登录的cookie替换,然后Python2.7跑脚本,from乌云雨神 http://www.hekaiyu.cn/hacker/3060.html

Global site tag (gtag.js) - Google Analytics