网络安全——HTML基础

1.漏洞

通用型:第三方软件、应用、系统对应的漏洞,每个使用这个软件或者应用系统的用户都存在这个漏洞,发现一个 漏洞可以封杀n多个网站

事件型:非通用型漏洞,主要指互联网上一个应用的具体漏洞,如具体到某个站点

2.同源

协议 主机 端口都相同

3.提交方式method

两种方法

Get :url中直接显示,可直接看到

Post :表单方式提交,嵌套在页面内,起到保密作用

4.windows系统日志中

4624 登陆成功

4625 审核失败

5.Linux日志

最后一次登录的日志

┌──(root���kali)-[/var/log]

└─# lastlog  

​ 查看用户登录的权限

┌──(root���kali)-[/var/log]

└─# cat /etc/passwd  

​ 查看日志

┌──(root���kali)-[/var/log]]()

└─# cd /var/log                                                                

┌──(root���kali)-[/var/log]

└─# ls -al 

wtmp显示为登陆成功的日志(last -f查看)

btmp显示为未成功登录的网站

6.查看外部连接

┌──(root���kali)-[/var/log]

└─# netstat -anlp | grep 8080

​                                                                               

┌──(root���kali)-[/var/log]

└─# netstat -anlp | grep 80  

7.端口

http ——80

https——443

ssh——22

POP3——110

smtp——25

ftp——20 21

dhcp——67 68

dns——53

windows远程桌面——3389

mysql——3306

sqlserver——1433

oracle——1521

8.html基础

<!DOCTYPE html>  <!--声明-->
<html lang="en">   <!--语言-->
<head>
    <meta charset="UTF-8"> <!--编码格式-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!--响应式标签-->
    <link rel="stylesheet" href="style.css">  <!--可链接CSS样式表-->
    <title>Document</title>  <!--标题-->
</head>
<body>
    <p>welcome</p>   <!--标签--><!--块级元素-->

    <div>
        <p>
            hello world
        </p>    
</div><!--嵌套标签--><!--块级元素-->

<span>pppp</span><span>pppp</span>  <!--行级元素-->

<img src="" width="" alt="" one rror=""> <!--插入图片:路径(相对/绝对),宽度,图片未加载显示的提示信息,当src找不到时运行onerror-->

<noscript>浏览器不支持JS</noscript>   <!--浏览器不支持脚本时,所要显示的内容-->
</body>
<style>
    body{background-color: black;}
</style>   <!--内联样式-->
<script>
    window.location.href="https://www.baidu.com"   <!--location属性有页面跳转功能-->
</script>
</html>

9.url

https://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#anchor

协议 主机host 端口 路径 查询参数(一定要加? 两个参数&连接)

​ (默认,可不写)

urlcode编码

  • 空格:%20

  • !:%21

  • #:%23

  • $:%24

  • %:%25

  • &:%26

  • ':%27

  • (:%28

  • ):%29

  • *:%2A

  • +:%2B

  • ,:%2C

  • /:%2F

  • ::%3A

  • ;:%3B

  • =:%3D

  • ?:%3F

  • @:%40

  • [:%5B

  • ]:%5D

    xss中小技巧:

    ?xss=1%20οnerrοr=location="javascript:alert%25%281%25%29(location可代表跳转页面)

    ?xss=1 οnerrοr=location="javascript:alert%281%29 (html页面摆脱()的限制)

    ?xss=1 οnerrοr=location="javascript:alert(1) (浏览器页面摆脱()的限制,实现弹窗机制)

10.utf-8编码规则

可变长的unicode编码

只有两条:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n=1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

下表总结了编码规则,字母x表示可用编码的位。

Unicode符号范围              |        UTF-8编码方式
(十六进制)                   |              (二进制)
----------------------+---------------------------------------------
0000 0000-0000 007F (0-127)| 0xxxxxxx
0000 0080-0000 07FF (128-2047)| 110xxxxx 10xxxxxx
0000 0800-0000 FFFF(2047-65535) | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

跟据上表,解读 UTF-8 编码非常简单。如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

例如:汉字中ascii码为20013

​ 在 0000 0800-0000 FFFF 三字节范围内,编码规范1110xxxx 10xxxxxx 10xxxxxx

​ 20013的二进制 0b100111000101101,0b为二进制符号

​ 从后往前补: 1110 0100(剩100,补为0100) 10111000(补后7-12位) 10101101(补后六位)

​ 转为十六进制:e4b8ad

11.link

noreferrer:告诉浏览器打开链接时,不要将当前网址作为 HTTP 头信息的Referer字段发送出去,这样可以隐藏点击的来源。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

</head>

<body>

    <a href="https://www.baidu.com">百度百科</a>    <!--a链接功能-->



    <img src="">   <!--a标签内部是一个图像,点击图片自动进行跳转-->



    <a href="http://www.cacxxy.com/index.jsp" title="延安大学西安创新学院">延创</a>   <!--鼠标悬浮在延创字样时出现title提示信息-->



    <a href="http://www.cacxxy.com/index.jsp" target="_self">延创</a>   <!--当前窗口打开-->



    <a href="http://www.cacxxy.com/index.jsp" target="_blank">延创</a>   <!--新窗口打开-->



    <a href="javascript:alert(1)">延创</a>    <!--a标签触发弹窗-->

</body>

<script>alert(1)</script>    <!--xss测试的基础三个弹窗事件-->

<script>prompt(1)</script>

<script>confirm(1)</script>

</html>

12.标签

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

</head>

<body>

    <div></div>   <!--块级元素标签-->

    <p></p> <!--块级元素标签-->

  <span></span> <!--行级元素标签-->

  <br>  <!--换行标签,单独使用 不闭合-->

  <hr>  <!--水平线-->

    <pre></pre>   <!--块级元素,保留原来的格式-->

  <strong></strong>  <b></b>  <!--加粗-->

  <em></em> <i></i> <!--斜体-->

  <u></u>  <!--下划线-->

  <s></s>  <!--删除线-->

    <code>alert(1)</code>  <!--网页出现alert(1)-->

  <mark></mark>  <!--黄色高亮显示-->

  <footer></footer>  <!--可显示网页底部关键字,版权信息-->

  <nav>  <!--导航信息-->

​    <ol>  <!--有序列表ol  无序列表ul-->

​     <li><a href="item-a">商品 A</a></li> 

​     <li><a href="item-b">商品 B</a></li>

​     <li>商品 C</li>

​    </ol>

   </nav>

   <h1>一级标题</h1>  <!--标题大小-->

</body>



</html>

13.form

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

</head>

<body>

  

</body>

<form action="https://example.com/api" method="post">  <!--后端接收(提交)的地址   传递参数的方法:post,get-->

  <label for="POST-name">用户名:</label>

  <input id="POST-name" type="text" name="user" placeholder="请输入提示信息" maxlength="8">  <!--name:提交的form表单名称  maxlength:限制长度-->

  <input type="submit" value="提交">

  <input type="hidden" name="hash" value="1111>"  <!--csrf-->

  <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" required>  <!--输入电话号码的格式-->

<small>Format: 123-456-7890</small>

 </form>

</html>

14.iframe

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

</head>

<body>

    <iframe src="https://www.baidu.com"   <!--在当前网页嵌入此网页-->

​    width="100%" height="500" frameborder="0"  <!--宽度 高度 是否绘制边框-->

​    allowfullscreen sandbox>  <!--allowfullscreen允许嵌入的网页全屏显示 sandbox设置嵌入网页的权限-->

  <p><a href="https://www.baidu.com">点击打开嵌入页面</a></p>

</iframe>  <!--iframe标签生成一个指定区域,在该区域嵌入其他网页-->



<iframe src="https://www.example.com" sandbox>   <!--src:嵌入网页的url地址-->

</iframe>



<iframe src="https://example.com" loading="lazy"></iframe>   <!--loading属性触发网页的懒加载     三个值:auto lazy eager-->

</body>

</html>

loading属性可以触发<iframe>网页的懒加载。该属性可以取以下三个值。

  • auto:浏览器的默认行为

  • lazy:懒加载,鼠标滚动进入页面时开始加载图片等信息

  • eager:立即开始加载资源,无论在页面上的位置如何

    当的宽度和高度为小于等于4像素

    样式设为display none或者visibility hidden时

    使用定位坐标为负x或负y,将iframe置在屏幕外

    chrome浏览器会认为是隐藏的,loading属性无效,将会立即开始加载

Web访问流程

  1. 浏览器----本地页面的代码

  2. http----截取数据、观察数据、修改数据、绕过页面代码判断

  3. Web容器(IIS apache Nginx)解析数据–解析文件、数据问题

  4. Web语言(php js python .net )执行代码

  5. 数据库

上一篇:C语言 运算符及练习


下一篇:进阶-1-深度剖析数据在内存中的存储