伪造微博注册页面

之前搜索伪造网页的博客时,发现相关内容较少,即使有,大部分也只是将代码罗列上去,不仅缺少图片链接,也缺少伪造思路。于是写下这篇博客,一起交流学习。

官方注册界面与伪造页面对比

官方注册页面
伪造页面

两者的区别在于我所伪造的页面背景颜色偏淡,没能与官方页面达成一致。

伪造过程

在官网右键点击“查看网页代码”,打开网页代码
在这里插入图片描述
将网页代码复制到自己新建的HTML中进行测试,发现直接复制源代码的网页缺少排版。
在这里插入图片描述
通过观察官网代码我们可以看到,其将网页排版的css另存到其他文件中。
在这里插入图片描述
我们一个个打开链接地址,将每一个css存放到本地。
在这里插入图片描述
然后将我们自己所建的网页对应的css链接进行修改
在这里插入图片描述
再次打开网页,发现排版已经完毕,但是没有图片。
在这里插入图片描述
起初,一开始我的想法是利用截图工具将官网图片截取下来,再放到自己的网页中,以达到混淆视听的功能。但是这样所贴到网页的图片往往大小都不对。究其原因,是图片像素与网页放置图片大小无法匹配。这种方法不仅容易出现与原网页明显的不同,而且十分繁琐,极大地加剧了工作量。于是我们换一种思路。利用浏览器插件。
这是火狐浏览器的一款插件,它可以帮助我们直接爬下网页中的图片,十分方便快捷。
在这里插入图片描述
我们提取官网图片,全选,然后下载下来。
在这里插入图片描述通过观察原网页,我们知道在填写手机号一栏,是有手机图片的。我们分析源代码。发现它调用了一个名为“mobile_ico”的图标,这个图标,应该就是手机图标。
在这里插入图片描述但我们不知道该图标的链接存放在哪里,于是我们打开四个css文件,利用查找功能,一个个地查找。
最后,我们在patch_regitster.css文件中找到了该图标链接。我们将其链接地址改为我们下载的图片的链接地址。
在这里插入图片描述
在这里插入图片描述
保存代码,刷新伪造网页进行检查。发现手机图标已经出现。
在这里插入图片描述
其他内容也可如法炮制。我发现,利用IA插件下载下来的图片名与原链接的图片名是一致的,因此,为了节省工作量,减少对网页代码的分析,我们可以直接在css文件中搜索下载的图片名,直接进行修改。
修改完成页面如图
在这里插入图片描述

细节处理

从表面上看,到这里为止,网页伪造已经结束了。但是还存在着一个问题——官网有服务器与网页实时交互。
在我们点击文本框时,会有提示出现。这一点是我们所伪造网页缺乏的。
在这里插入图片描述
经过查找资料发现,我们需要用AJAX语言与ASP语言构造后台实现。
AJAX环境搭建可以参考该博客文档

https://www.cnblogs.com/technicist/p/12730501.html

在搭建好环境后,我尝试编写一个输入提示网页。代码如下:
html网页代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function showHint(str)
{
var xmlhttp;
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","test.asp?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<h3>在输入框中尝试输入字母 a:</h3>
<form action=""> 
输入姓名: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>提示信息: <span id="txtHint"></span></p> 

</body>
</html>

ASP代码如下

<%
response.expires=-1
dim a(30)
'用名字来填充数组
a(1)="Anna"
a(2)="Brittany"
a(3)="Cinderella"
a(4)="Diana"
a(5)="Eva"
a(6)="Fiona"
a(7)="Gunda"
a(8)="Hege"
a(9)="Inga"
a(10)="Johanna"


'获得来自 URL 的 q 参数
q=ucase(request.querystring("q"))

'如果 q 大于 0,则查找数组中的所有提示
if len(q)>0 then
  hint=""
  for i=1 to 30
    if q=ucase(mid(a(i),1,len(q))) then
      if hint="" then
        hint=a(i)
      else
        hint=hint & " , " & a(i)
      end if
    end if
  next
end if

'如果未找到提示,则输出 "no suggestion"
'否则输出正确的值
if hint="" then
  response.write("no suggestion")
else
  response.write(hint)
end if
%>

如果运行正确的话,输入字符应该会有相应名字的提示出现。但我在调试中出现了如下问题:
在输入字母a后,会将ASP源码全部输出。
在这里插入图片描述
按照以往出现这种情况的经验来看,应该是环境没有搭好。于是我换用PHP语言书写,发现出现同样问题。
到此时,我还不死心,换用win10的虚拟机搭建环境调试,发现结果是一致的。
从网上查取资料也没能找到相关解决方案,于是我只好作罢。
伪造了一个不完美的网页。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值