方式一 :
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网站管理系统的一个安全问题,具体来说,这是一个由于程序代码过滤不足导致的存储型跨站脚本( Stored Cross-Site Scripting, XSS )漏洞。Dedecms...
在这个项目中,通过uCenter,用户在任一系统登录后,其他两个系统的登录状态也会自动更新,实现了SSO功能。这大大提升了用户体验,减少了用户记忆多个密码的困扰,并简化了登录流程。 **5. 整合过程** 整合过程通常...
在织梦系统中,安装并启用该插件后,一旦管理员在一个设备上登录,其他设备上的会话将自动失效,从而防止了未授权的访问。这不仅增强了安全性,也简化了管理流程,降低了由于多设备登录可能带来的风险。 该插件支持...
首先,织梦系统的登录页面是用户访问后台管理系统的第一步。这个页面通常包含用户名和密码输入框,以及登录按钮。用户需要输入正确的管理员账号和密码才能进入后台。为了保证安全性,织梦系统通常会使用HTTPS协议来...
如果包含JavaScript,可能是用于实现表单验证、提交前的提示或者增强交互效果,如使用AJAX无刷新登录。 在实际应用中,开发者可以根据项目需求对这个模板进行定制。例如,可以通过修改CSS调整登录界面的主题,以...
7. **音频和视频支持**:虽然登录页面可能不需要音频和视频元素,但HTML5的和标签提供了一种内联播放多媒体内容的便捷方式,如果登录页面有背景音乐或视频介绍,可能会用到这些特性。 8. **Web Workers和Web ...
4. **交互设计**:登录过程中的反馈机制也很重要,如输入验证提示、错误信息显示等,要让用户清楚知道操作是否成功,以及如何改正错误。 5. **安全性**:虽然美化侧重于视觉效果,但安全也不容忽视。比如,登录表单...
dedecms批量漏洞扫描,大家可以自己试试效果
通常,这会涵盖如何将模板文件上传到服务器、如何在DeDecms的配置中设置新的登录页面、以及可能存在的兼容性和安全注意事项。在实际操作前,阅读并遵循这些指导至关重要。 而“132692096079895044”可能是一个错误...
用户在访问这些内容时,会提示他们支付相应的金额,完成支付后,隐藏的内容将自动解锁。这样的设计既保护了网站的原创内容,也增加了用户的参与度和黏性,因为用户会更加珍惜自己付费获取的信息。 插件的安装过程...
要利用此漏洞,攻击者需要能够访问并操作DedeCMS后台的“系统”->“支付工具”->“配送方式设置”,在那里他们可以添加一个新的配送方式,将XSS payload 输入到“简要说明”字段中。一旦数据保存到数据库,payload ...
DEDECMS 5.7后台Getshell漏洞分析 DEDECMS 5.7后台Getshell漏洞是近期爆出的一个漏洞,该漏洞允许攻击者在DEDECMS 5.7后台上传恶意文件,从而获取服务器的控制权。下面我们将对这个漏洞进行深入分析。 漏洞成因 ...
2. 安装Dedecms:将Dedecms程序包上传至服务器,通过浏览器访问安装向导完成数据库配置和基础设置。 3. 导入模板:将提供的“基于PHP的杨雨个人博客模板Dedecms版”源码解压,将模板文件夹上传至Dedecms的`templets`...
在使用DedeCMS(织梦内容管理系统)的过程中,用户可能会遇到后台登录时验证码不显示的问题。这种情况不仅影响用户体验,还可能导致无法正常登录后台进行管理操作。本文将详细介绍Dede后台验证码不显示的三种常见...
在这个"织梦的CSS用户登录界面"中,我们将探讨如何利用CSS来提升登录页面的视觉效果和交互性。 首先,`login.htm`是登录页面的HTML文件。HTML是页面结构的基础,用于定义元素如表单、输入框、按钮等。在织梦的登录...
标题中的"WIN10调整端口"涉及到的是Windows 10操作系统中对网络服务的配置,特别是关于端口号的修改。...通过以上步骤,用户可以在Win10环境下成功调整DEDECMS的端口,并确保DEDECMS网站能够正确打开和浏览。
4. **获取授权码**:用户在QQ页面成功登录并同意授权后,QQ服务器会将一个授权码(code)发送回你之前设置的回调地址。 5. **交换Access Token**:使用AppID、AppKey和授权码,向QQ服务器请求Access Token,这是...
织梦内容管理系统(DedeCMS)是一款广泛使用的开源PHP网站管理平台,以其强大的自定义功能和易用性受到许多用户的青睐。然而,如同任何其他系统一样,用户有时可能会遇到忘记后台登录密码的情况。本篇文章将详细讲解...
wLHK-Dedecms漏洞整理 从给定的文件信息中,我们可以看到该文件是关于Dedecms漏洞的整理报告,包含了多个漏洞的详情,包括SQL注入漏洞、XSS漏洞等。下面我们将对这些漏洞进行详细的分析和解释。 首先,我们来看第...
dedecms5.7sp1后台(要能够注册member的vip账户后台才可以)存在sql延时注入exp,用火狐得到账户登录的cookie替换,然后Python2.7跑脚本,from乌云雨神 http://www.hekaiyu.cn/hacker/3060.html