某高校校园卡网站模拟登陆(php)

news/2024/5/9 20:48:22/文章来源:https://blog.csdn.net/kangaroo835127729/article/details/24676401
让我们先来看登陆界面,这里可以使用卡号或学号,这里我们使用卡号,其实是一样的


输入卡号后,点击密码输入框,弹出一个密码键盘



输入密码以后,点击验证码框出现验证码


输入验证码以后正常登陆

下面来看看这个登陆界面的几个特点
1,必须使用密码键盘输入密码才能登陆成功,关闭键盘,直接输入密码不可以登陆
2,验证码获取不随机

从图片可以看出,rand后面的数字与验证码上面的数字一样,说明只要我们改变数字求请求验证码,就可以得到相应数字的验证码
尝试如图


根据上面的分析,我们再尝试抓包
可以看出传递的地址与参数,分析其中passwd参数与我实际选择的密码不同


于是推测,密码实际是密码键盘上面生成的,也就是说你实际的密码并没有使用到
每次请求会得到一张密码键盘图,其实传送的密码,是根据你点击的键盘坐标生成的
例如下图,假设你的密码是123456,那么你在键盘上点击以后生成的实际密码是
284902,对应关系是1=>2,2=>8,3=>4,4=>9,5=>0,6=>2
可以看出实际是根据键盘坐标对应的,无论键盘上的图片是几,第一个代表的就是0,第二个是1,依次类推



根据上面的结论,我总结模拟登陆的思路:
首先获取密码键盘表,根据每个按钮的坐标,截取里面的数字,确定每个数字图片代表的是几,这里为了代码编写方便,使用md5把截取出来的二进制图片加密,生成32字符便于比较
首先保存一张密码键盘图片,使用切片工具确定坐标,把每个数字切出来,下面使用php实现切片
<?php                
//获取键盘图片
$imgsrc = "pan.png";
//创建键盘图片数据
$source = imagecreatefrompng($imgsrc);
//设置新图片画布
$tagurl = "first.png";
//这里设置长宽为25px,因为根据切片工具看,每个数字图片的长宽为25px
$w = $h = 25;
//创建画布,为画数字图片做准备
$tag = imagecreatetruecolor($w,$h);    
//根据具体坐标,截取键盘图片部分,生成数字图片
imagecopy($tag,$source,0,0,9,143,$w,$h);            
imagepng($tag,$tagurl);
//读取数字图片,将二进制数据md5加密,获得唯一对应值
$zuobiao = md5(file_get_contents($tagurl));
?>
附一张截取出来的数字图片

下面是总结的对应关系
9=>1c08ef360c36e3a85efb2ca279802461
0=>bfc4992573880df8e374807c443e8401
1=>eb24abcd7028ac9d03848d35ca4376f2
3=>486d19dccda9cae742bb376f257c7eb9
2=>da4c60c456ba8d60001da697ecd65a7d
5=>34d28f6f4f6638cecf8e01df5f8c1cf9
6=>40333b61dea66ec76af47efc467d7722
8=>4ed3428507225abf5dc1f0b0624fbbdc
4=>c230847e76231e5efad5c558544ceb56
7=>353519ea4fb442c8d23244e66d3bd4bd

下面的步骤是:
获取键盘图片,根据上面的方法,确定原密码对应的新密码
获取验证码图片,这个可以构造自己的验证码,所以基本就是绕过
根据新密码,验证码等信息,提交表单给登陆地址,模拟登陆

直接贴代码说明
<?php        
/*
*根据你原来的密码与密码键盘生成新密码
*/
function getpwd($imgsrc = "pan.png",$pwd){    
//数字图片横纵坐标
$width = array(9,45,81);
$height = array(35,71,107);
//数字图片对应的数字
$old = array(
"1c08ef360c36e3a85efb2ca279802461" => 9,
"bfc4992573880df8e374807c443e8401" => 0,
"eb24abcd7028ac9d03848d35ca4376f2" => 1,
"486d19dccda9cae742bb376f257c7eb9" => 3,
"da4c60c456ba8d60001da697ecd65a7d" => 2,
"34d28f6f4f6638cecf8e01df5f8c1cf9" => 5,
"40333b61dea66ec76af47efc467d7722" => 6,
"4ed3428507225abf5dc1f0b0624fbbdc" => 8,
"c230847e76231e5efad5c558544ceb56" => 4,
"353519ea4fb442c8d23244e66d3bd4bd" => 7,
);
//获取原图片
$source = imagecreatefrompng($imgsrc);
$arr = array();
//设置新图片画布
$tagurl = "first.png";
$w = $h = 25;
$k = 0;
//根据你请求到的键盘图片,生成新密码
for($i = 0; $i < count($height); $i++){
for($j = 0; $j < count($width); $j++){                
$tag = imagecreatetruecolor($w,$h);                
imagecopy($tag,$source,0,0,$width[$j],$height[$i],$w,$h);            
imagepng($tag,$tagurl);
$zuobiao = md5(file_get_contents($tagurl));                
$arr[$old[$zuobiao]] = $k;
$k++;                
}
}        
//这里是最后一个,因为后两个不是数字,是删除键,关闭键,所以对于最后一个数字单独提取        
$tag = imagecreatetruecolor($w,$h);                
imagecopy($tag,$source,0,0,9,143,$w,$h);            
imagepng($tag,$tagurl);
$zuobiao = md5(file_get_contents($tagurl));                
$arr[$old[$zuobiao]] = $k;
//连接出新密码                
$realpwd = "";        
for($i = 0; $i < strlen($pwd); $i++){
$realpwd .= $arr[$pwd{$i}];    
}
return $realpwd;
}
function login(){
//cookie保存位置
$cookie_jar = dirname(__FILE__)."/pic.cookie";
//获取键盘图片,记得携带cookie
$ch = curl_init();
$panurl = "http://card.jnu.edu.cn:8080/getpasswdPhoto.action";
curl_setopt($ch,CURLOPT_URL,$panurl);    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$pan = curl_exec($ch);
file_put_contents("pan.png",$pan);
//根据密码图片与原密码,获取新密码
$pwd = getpwd("pan.png","原密码");
//获取验证码图片,记得带上cookie        
$imgurl = "http://card.jnu.edu.cn:8080/getCheckpic.action?rand=8080.";
curl_setopt($ch,CURLOPT_URL,$imgurl);    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$img = curl_exec($ch);
file_put_contents("a.jpg",$img);
//模拟登陆    
$url = "http://card.jnu.edu.cn:8080/loginstudent.action";
$post = array('name'=>'你的卡号','loginType'=>'1','passwd'=>$pwd,'rand'=>'8080','userType'=>'1');        
curl_setopt($ch,CURLOPT_URL,$url);    
curl_setopt($ch,CURLOPT_HEADER, 0);    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,  http_build_query($post));
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
$res = curl_exec($ch);        
if (curl_errno($ch)) {
print curl_error($ch);
}      
//模拟登陆成功以后,携带cookie登陆校园卡信息界面
$url = "http://card.jnu.edu.cn:8080/accountcardUser.action";
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
$res = curl_exec($ch);
echo $res;
if (curl_errno($ch)) {
print curl_error($ch);
}      
curl_close($ch);
}
login();            
?>




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_788204.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于动态网站的简单爬虫实现

1.XPath的使用 用来解析XML&#xff0c; 也可以用来解析HTML。同Beautiful Soup一样&#xff0c;在XPath中提供了非常简洁的节点选择的方法&#xff0c;Beautiful Soup主要是通过.的方式来进行子节点或者子孙节点的选择&#xff0c;而在XPath中则主要通过/的方式来选择节点。 …

jsp oracle 网站建设_网站建设5大基础知识,你知道吗?

原标题&#xff1a;网站建设5大基础知识&#xff0c;你知道吗&#xff1f;现在网站建设普及度越来越广&#xff0c;做网站建设的企业也越来越多&#xff0c;引起不少对网站建设知识学习的追求者&#xff0c;一时间各种建站系统遍布互联网。在做网站优化中&#xff0c;也许对网站…

多布局怎么搭建_怎么建设文创饰品网站?需要多少钱?

近几年文创周边产品很受欢迎&#xff0c;因此也诞生了不少文化艺术、文创饰品类企业。文创产品要想顺利销售出去&#xff0c;就需要广拓渠道&#xff0c;尤其要注重互联网窗口的建设&#xff0c;因此建设一个自己的官方网站自然是少不了的。「上线了」建站案例文创饰品公司要建…

python3网站攻击_Python实现DDos攻击实例详解

SYN 泛洪攻击 SYN泛洪攻击是一种比较常用的Dos方式之一。通过发送大量伪造的 TCP 连接请求&#xff0c;使被攻击主机资源耗尽&#xff08;通常是 CPU 满负荷或内存不足&#xff09;的攻击方式 我们都知道建立 TCP 连接需要三次握手。正常情况下客户端首先向服务器端发送SYN报文…

node获取图片路径_在Node.js上接入Paddle Lite,让你的网站具备AI推理能力

【飞桨开发者说】李睿&#xff0c;北京邮电大学学生&#xff0c;人工智能和移动开发爱好者。随着桌面端Electron技术逐步崛起&#xff0c;基于Electron开发的代码编辑器、聊天软件、游戏等层出不穷。对于习惯使用Node.js进行后端开发的朋友来说&#xff0c;开发一套漂亮的桌面U…

bootstrap获取下拉框数据_网站SEO优化推广关键词可以通过哪些途径获取,分析百度搜索原理...

一、百度下拉框&#xff0c;从百度下拉框里可以获取用户在搜索引擎搜索过的关键词&#xff0c;这类词符合用户的搜索习惯。二、百度相关搜索&#xff0c;在搜索引擎页面底部&#xff0c;有个百度相关搜索&#xff0c;这些词也可以选择&#xff0c;这是百度算法根据用户浏览过的…

静态网站生成器

静态网站生成器 静态网站相比动态网站具备无需依赖应用服务器&#xff0c;性能优越&#xff0c;部署简单等特点。特别适合生成静态文档&#xff0c;个人博客&#xff0c;饱受开发者的青睐。相比学会使用&#xff0c;掌握工作原理也尤为重要。 一个静态网站生成器的工作流程通…

SEO优化来了

搜索引擎工作原理 当我们在输入框中输入关键词&#xff0c;点击搜索或查询时&#xff0c;然后得到结果。深究其背后的故事&#xff0c;搜索引擎做了很多事情。 在搜索引擎网站&#xff0c;比如百度&#xff0c;在其后台有一个非常庞大的数据库&#xff0c;里面存储了海量的关…

织梦网站地图更新自由列表html,织梦自由列表更新使用教程

当我们用织梦网站建立了一个自由列表后就相当于建立了一个类似其它栏目的一个列表&#xff0c;跟其它栏目建立了一个最终列表页一样&#xff0c;当建立完自由列表后&#xff0c;也需要生成列表html&#xff0c;也就是自由列表的更新&#xff0c;如下图所示&#xff1a;(此图片来…

大型网站架构演变和知识体系(转)

之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演变&#xff0c;再加上近来感觉有不少同学都很难明白为什么…

http 升级 https 影响原来的链接吗_http切换https的SEO完美解决办法

对于网站http协议切换为https协议&#xff0c;这不仅仅能够提升网站的安全度&#xff0c;还可以提升网站在搜索引擎的权重。因为像百度针对https协议的站点有明确的提权政策。百度认为更加安全的站点应该获得更优质的展现&#xff0c;进而给予优先展示。那么针对SEO的工作而言&…

nofollow标签_网站被加上nofollow对SEO有什么危害?网站nofollow标签知多少?

关于以上问题我总结了一下网上比较优秀的关于nofollow的文章&#xff0c;希望能对新手有所帮助nofollow标签的介绍nofollow是一个HTML标签的属性值&#xff0c;nofollow 是一个HTML标签的属性值。它的出现为网站管理员提供了一种方式&#xff0c;即告诉搜索引擎“不要追踪此网页…

php源码仿三一重工,仿三一重工大气企业网站php源码

大小&#xff1a;21.55M编码&#xff1a;GBK简体类别&#xff1a;机械电子★模板介绍★源码名称&#xff1a;仿三一重工大气企业网站php源码仿三一重工大气企业网站php源码&#xff0c;测试完整无错&#xff0c;兼容主流浏览器。模板包含安装说明&#xff0c;并包含测试数据。本…

如何查询一个网站的服务器大小写,网站页面的大小写

网站页面的大小写 内容精选换一换云速建站不支持自适应宽度&#xff0c;推荐使用网站宽度为1200px&#xff0c;设置方法请参考网站基础设置。将空白处下方的模块或页脚整体上移&#xff0c;遮盖住空白处&#xff0c;然后保存修改。云速建站没有固定长度&#xff0c;网页的长度取…

在内网打造可以从外网访问的网站和服务

最近在内网建了一个简单的网站&#xff0c;利用路由器&#xff0c;使网站可以从外网访问。 首先利用appserv套件搭建一个phpmysqlapchephpmyadmin环境&#xff0c;安装十分简单&#xff0c;直接下一步就行了&#xff0c;中途可能要填写网络端口和Mysql数据库密码&#xff0c;网…

iis运行html提示500错误,IIS发布网站出现Http—500错误

IIS服务器可以作为一个Web服务器单独使用&#xff0c;也可以与相兼容的工具一起使用&#xff0c;它可以用来建立Internet商务、访问和操作来自不同数据源的数据以及创建Web应用程序&#xff0c;其中这些应用程序利用服务器脚本和组件代码来完成一些客户-服务器功能。客户端访问…

一键seo提交收录_Api提交百度搜索进行文章收录-网站SEO

网站内容如果想被搜索引擎(百度/google)收录&#xff0c;除了提供robots.txt等着爬虫来爬以外&#xff0c;如果想最快的被百度收录可以在熊掌号平台进行注册&#xff0c;可以通过在平台上进行页面改造、站点同步等方式提高百度收录&#xff0c;但是最有效的方式是使用api主动向…

网站互点排名掉了网站互点排名掉了网站互点_影响网站关键词排名不稳定的6个因素及优化建议...

很多站长朋友消耗大量的时间成本&#xff0c;人力成本做网站关键词排名&#xff0c;并让排名达到理想状况&#xff0c;却发现网站关键词排名不稳定&#xff0c;时上时下&#xff0c;飘忽不定。针对这种情况&#xff0c;建议站长或seo优化人员针对排名不稳定的原因做具体分析&am…

做服务器_美国站群服务器做网站优化效果怎么样

我们接触过不同的服务器&#xff0c;普通的网站服务器&#xff0c;高配的游戏服务器&#xff0c;金融行业的抗攻击服务器&#xff0c;多IP服务器等等。说到多IP服务器&#xff0c;可能第一时间就会想到站群服务器。众所周知&#xff0c;在早些时候&#xff0c;很多企业站长都会…

python爬取新闻网站内容_python快速抓取新闻标题及内容

原博文 2018-10-25 20:17 − from newspaper import Article url 你想要爬取的网站url news Article(url, languagezh) news .download() #先下载 news .parse() #再解析 print(news.text) #新闻正文 ... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的计算机程序…