TypeCodes

PHP模拟登录WordPress后台二:使用curl函数

上一篇文章中讲述了如何使用chrome浏览器进行网络抓包,那么这篇文章就说说结合chrome抓包工具,使用PHP的curl函数模拟登录wordpress后台。

1 根据chrome网络抓包的数据组PHP发送包

根据上一篇文章chrome抓包的情况(主要是见节点6),通过curl函数组发送包。组包信息包括CURLOPT_HTTPHEADER等curl_setopt函数中的所有字段。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* @access_path: http://127.0.0.1/4.php
* @author: vfhky 20140313 19:13
* @description: PHP模拟登录wordpress后台(http://127.0.0.1/wpupdate/wp-admin/)
* @reference: http://vfhky.sinaapp.com/mix/887.html
*/

/* wordpress帐号 */
$log = '***';
/* wordpress密码 */
$pwd = '***';
/* cookie位置,一定要使用绝对路径 */
$cookie = dirname(__file__).'/cookie.txt';
/* 目标登录的地址 */
$login_url = 'http://127.0.0.1/wpupdate/wp-login.php';
/* POST方式提交的字段内容 */
$post = 'log='.$log.'&pwd='.$pwd.'&wp-submit=登录';

$ch = curl_init($login_url);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_HEADER, true);

/* curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); */
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Language: zh-cn','Cache-Control: no-cache','User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36','Connection:keep-alive','Referer:Referer:http://127.0.0.1/wpupdate/wp-login.php?redirect_to=http%3A%2F%2F127.0.0.1%2Fwpupdate%2Fwp-admin%2F&reauth=1'));

/* CURL收到的 HTTP Response 中的 Set-Cookie 存放的位置 */
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
/* CURL发送的 HTTP Request 中的 Cookie 存放的位置 */
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch);
curl_close($ch);

/* 输出获取的资源$result,该资源是wordpress后台处理返回的Response Headers信息 */
print_r($result);

/* 清理cookie文件: unlink($cookie_file); */
2 打开chrome准备进行抓包

在chrome中F12打开“审查元素”,然后在地址栏中输入http://127.0.0.1/4.php,得到如下图片。图中Request Headers中,可以看出上面程序组包的那些字段:User-Agent、Connection等。

打开chrome准备进行抓包

chrome网络抓包的数据

3 查看程序运行结果

上面程序在浏览器中输出结果后,可以通过右键“查看网页源代码”来查看返回数据的清晰结构。

chrome中查看程序运行结果

chrome中右键“查看网页源代码”

同时,在和4.php同目录下面生成了一个cookie.txt的文件。里面保存cookie信息如下所示,它和上图中浏览器中显示的信息完全一致(敏感信息博主用*替换了)。

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

127.0.0.1   FALSE   /wpupdate/  FALSE   0   wordpress_test_cookie   WP+Cookie+check
#HttpOnly_127.0.0.1 FALSE   /wpupdate/wp-content/plugins    FALSE   0   wordpress_39bb3cf5af28163bc1699c85ce702b1c  ****************************75e2bc172f438ff20ac*******
#HttpOnly_127.0.0.1 FALSE   /wpupdate/wp-admin  FALSE   0   wordpress_39bb3cf5af28163bc1699c85ce702b1c  ****************************75e2bc172f438ff20ac*******
#HttpOnly_127.0.0.1 FALSE   /wpupdate/  FALSE   0   wordpress_logged_in_39bb3cf5af28163bc1699c85ce702b1c    *********************C7ffc62ae1216786a97b67bb*********
3 收到wordpress后台发送过来的登录成功的邮箱提醒

由于主题[vfhky]设置了后台登录成功或者失败的邮件提醒功能,所以上面的操作如果成功的话,还会一封登录成功的邮件。

wordpress后台登录成功的邮件提醒

打赏支持

Comments »