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等。
3 查看程序运行结果
上面程序在浏览器中输出结果后,可以通过右键“查看网页源代码”来查看返回数据的清晰结构。
同时,在和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]设置了后台登录成功或者失败的邮件提醒功能,所以上面的操作如果成功的话,还会一封登录成功的邮件。
打赏支持
Comments »