安全矩阵

 找回密码
 立即注册
搜索
楼主: Pluto

李佳瑞学习日记

[复制链接]

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-26 00:11:02 | 显示全部楼层
二次注入
二次注入原理
第一步:插入恶意数据,向数据库插入数据时候,虽然对特殊字符进行了转义,但写入数据库的
时候还是保留了原来的数据,使得数据本身已经包含恶意内容。


如果没有过滤  在写入数据库的时候 ' 或者# 也会被写入

再读取的时候可能进行二次注入


如果设置账号为 admin'## 登录的时候会进行转录 不会起到注释作用


第二步:引用恶意数据
恶意数据写入数据库中,在利用查询读取恶意数据,没有没有检查,就会造成SQL的二次注入

回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-9-16 23:36:05 | 显示全部楼层
第一章 信息收集
1、基本额信息收集

(1)、域名信息

  • 对应ip收集

    • 工具:nslookup


  • 子域名收集

    • 工具:layer、subDomainsBrute(解压扫python目录下)


  • whois(注册人)信息查

    • 根据已知域名反查,分析出此域名的注册人、邮箱、电话等

    • 工具:爱站网、站长工具、微步在线(https://x.threatbook.cn

    • site.ip138.com、searchdns.netcraft.com



(2)、敏感目录

测试网站:http://qufutuan.com

  • 收集方向

    • robots.txt、后台目录、安装包、上传目录、mysql管理接口、安装页面、phpinfo、编辑器、iis短文件

    • phpmyadmin


  • 常用工具

    • 字典爆破>>御剑、dirbuster、wwwscan、IIS_shortname_Scanner等

    • 蜘蛛爬行>>爬行菜刀、webrobot、burp等




子域名相对主域名可能有漏洞

(3)、端口扫描

常用工具:nmap、portscan、ntscan、telnet

对应端口:

FTP>>22

SSH>>21

Telnet>>23

Mysql>>3306

Sqlsever>>1433

Tomcat/jboss>>8080

Window:cmd输入:mstsc >>打开远程桌面

(4)、旁站C段


(5)、整站分析

判断网站类型:

操作系统:windows、liunx

脚本格式:asp、aspx、php、jsp

数据库类型:access、sqlserver、oracle、db2、postgresql、sqlite

防护情况:waf

cms类型:dedecms、diguo、meterinfo、dz

  • 服务器类型

    • 服务器平台、版本等(url:Liunx区分大小写、wind不区分)


  • 网站容器

    • 搭建网站的服务组件,列如:iis、Apache、nginx、tomcat等

    • 抓包、404>>可以查看容器信息



(6)、谷歌hack

(7)、URL采集

  • 采集相关url的同类网站

  • 例如:

    • php?id=

    • 漏洞网站

    • 相同某种指纹网站


  • 常用工具

  • 谷歌hacker

  • url采集器


2、网站后台查找
  • 1、弱口令默认后台:admin、admin/login.asp、manage、login.asp等等常见后台

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

  • 3、查看网站图片的属性

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

  • 5、用工具查找:wwwscan、intellitamper、御剑

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

  • 7、GoogleHacker

  • 8、查看网站使用的编辑器是否有默认后台

  • 9、短文件利用

  • 10、sqlmap --sql-shell load_file('d:/wwroot/index.php');


查看cms:http://www.yunsee.cn

3、CDN绕过方法

什么是CDN?

“CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

判断有没有CDN:

站长工具:ping测试

绕过CDN方法:

1、查找二级域名

2、让服务器主动给你发包(邮件)

3、敏感文件泄露

4、查询历史解析ip (ip138)

5、app抓包

  • 访问绕过cdn

    • 修改本地hosts文件,指向真实IP地址




回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-9-18 00:06:38 | 显示全部楼层
Web安全渗透学习-环境搭建
这一章的大部分内容在网上都能找的相关内容,例如sqli-labs的搭建。除了XSS测试平台需要去MS08067实验室去下载并安装。
我自己觉得能稍微记录一下的就是在Linux系统中安装LANMP.
LANMP是Linux下Apache、Nginx、MySQL和PHP的应用环境。
此处使用的是WDLinux的一款集成的安装包。
step1:下载所需的安装包
step2:对下载的文件进行解压
tar zxvf lanmp_v3.tar.gz
step3:运行LANMP
输入sh lanmp.sh命令运行LANMP
选项1是安装Apache、PHP、MySQL、Zend、PureFTPd和phpmyadmin服务。
选项2是安装Nginx、PHP、MySQL、Zend、PureFTPd和phpmyadmin服务。
选项3是安装Nginx、Apache、PHP、MySQL、Zend、PureFTPd和phpmyadmin服务。
选项4是安装所有服务。
选项5则是现在不安装。
其中的Zend Guard是一款PHP加密工具、PureFTPd是FTP空间服务、phpMyAdmin是利用Web页面来管理MySQL数据库服务。
注:在kali和Ubuntu中可能会因为dash兼容性不好而报错,所以直接更改系统的编辑器:sudo dpkg-reconfigure dash,然后选择NO。
安装完成之后,在浏览器中访问IP和8080端口,输入默认的账号admin和密码wdlinux.cn,登录成功后修改默认密码,防止被攻击。
最后就是记录一下自己现在的想法,避免以后忘记了。就是搭建lamp等环境,docker它不香嘛!!!

环境准备
OWASP靶机下载

OWASP是一个安全组织,我们在没有进实验室的时候已经有所了解了,owasp靶机上面存在着大多的已知漏洞,我们可以通过上面很多的漏洞对它进行实验,加深我们对渗透知识的理解。

OWASP下载教程
进入OWASP的官方网站找到相应文件进行下载:
https://www.owasp.org/index.php/Main_Page
百度网盘下载方便,主要是官网全英文,不习惯,反正这个也好几年没更新了。
百度网盘链接:https://pan.baidu.com/s/1QoNqGZ08ejeKxU2Olp3nEw 提取码:1uen
这是个虚拟机的压缩文件,相信VMware也都熟悉的,把文件下载后解压,然后用VMware打开就行了,系统默认用户名和密码为root和owaspbwa,并且这个密码也基本是通用的,比如mysql的用户名和密码也是这个。并且使用VMware打开该虚拟机时,下面的描述也提示了系统用户名和密码等。

Kali虚拟机安装

我们除了要准备OWASP之外,还需要准备Kali虚拟机(这个我已经和学长要到了),使用Kali虚拟机作为我们的攻击机,然后我们机器如果有多余的资源,我们还可以准备一个Win7的虚拟机,考虑到中途会使用一些安全工具,然而许多安全工具都会被类似360之类的报毒并且查杀,并且也为了考虑到自身物理机的安全,因为有些安全工具自己也不好确定到底是否安全,是否会被其他人注入了后门从而放到网络上的。总之,为了安全起见,还是建议重新安装一台Windows虚拟机来进行操作。我的电脑由于配置不行,托两台虚拟机就差不多了,所以我使用的是物理机的操作系统进行对相关知识的了解。
具体Kali虚拟机和Windows虚拟机的安装过程就不多说了,我们都已经装好了

虚拟机网络环境设置

我们都知道虚拟机的联网方式有三种,分别是桥接、NAT、和仅主机模式;大概说一下桥接和NAT,桥接说得简单一点就是使用了桥接模式的虚拟机在互联网上能够查询到;使用NAT模式的虚拟机在互联网上就查询不到,我是这样理解的。然而我们的OWASP靶机几乎就是一个漏洞百出的操作系统,如果使用桥接模式的话可能也不怎么安全(应该是我多想了),所以建议还是使用NAT模式。并且我们设置网络的时候要保证Kali虚拟机、OWASP虚拟机和另一台实验机能够互相通信,这是一个很简单的道理。
我自己弄的时候发现使用NAT模式下,物理机在浏览器中输入OWASP的IP却不能访问,但是能ping通,还不知道是个什么情况。

虚拟机无法上网的情况
  • 如果虚拟机使用的是桥接模式的话IP地址要和物理机的IP保持在同一个局域网内,如果连接的是无线网络,那么虚拟机的“虚拟网络编辑器”选项中,虚拟机桥接的网卡要选择自动,然后再把虚拟机IP设置为和无线网络同一个网段就可以正常上网了。
  • 如果使用的是NAT模式,发现虚拟机无法正常获得IP地址的话确认一下物理机的NAT服务是否开启,具体方法是:按Win+R键,输入services.msc然后打开Windows服务,在里面找到相关服务,并确定服务是否开启,如果没有开启,就把服务启动起来,然后重新让虚拟机获取一下IP地址应该就能正常上网了。
  • 在虚拟机终端中输入命令:
    dhclient -r 表示移除当前自动获取的IP地址
    dhclient -v eth0 表示使eth0网卡自动获取IP地址,并查看详细的获取过程,可以不加 -v 选项
    最后我们确认一下是否能正常访问OWASP,在物理机或者Kali虚拟机的浏览器内,输入OWASP虚拟机的IP地址,弹出如下界面表示能够正常访问,我们也可以使用和探索相关的漏洞啦!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-9-18 00:28:00 | 显示全部楼层
搭建漏洞环境及实战(原文https://blog.csdn.net/cxcsdn666/article/details/100596763) 觉得好就整理过来了在线练习平台:https://www.ms08067.com/about/bachang.html在linux系统中安装LANMP
LANMP是linux下Apache、Nginx、MySql和PHP的应用环境,本节演示WDLinux的一款集成安装包,首先下载安装包,命令如下:
  1. wget http://dl.wdlinux.cn/files/lanmp_v3.tar.gz
复制代码
解压安装包,命令:
  1. tar zxvf lanmp_v3.tar.gz
复制代码
执行安装,命令:
  1. sh lanmp.sh
复制代码
会提示错误:


原因:系统的dash兼容性不好,而编译常用的就是bash,所有输入一下命令,直接更改系统的编辑器(shell)操作。
  1. sudo dpkg-reconfigure dash
复制代码
选择NO选项


再输入以下命令即可:
  1. sudo sh lanmp.sh
复制代码
根据提示选择安装环境(我选了4),安装过程可能有点慢
MySQL出现错误:
解决方法:法1(我没有成功):https://blog.csdn.net/alw2009/article/details/85345715法2:输入命令:因为根据提示是缺少cmake编译环境
  1. apt-get install cmake
复制代码
Nginx出现错误:解决方法:输入命令:
  1. sudo apt-get install libssl-dev
复制代码

又是一堆子Not Found ,发现在Kali Linux上安装是个错误的选择 。。。。

安装时间有点长,完成后可以看到如下图,在浏览器中访问IP和8080端口,默认账户密码为admin和wdlinux.cn

2.2在Windows系统中安装WAMP2.3搭建DVWA漏洞环境

靶机:http://43.247.91.228:81

2.4搭建SQL注入平台

sqli-labs是一款学校SQL注入的开源平台,共有75种不同类型的注入。靶机:http://43.247.91.228:84/

2.5搭建XSS测试平台

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-9-25 17:36:41 | 显示全部楼层
nmap 的学习 (前几章的工具都有学习,不是熟练,只能照着教程)
nmap (网络映射器)是一款开发源代码的网络探测和安全审核工具
nmap是一款非常强大的主机发现和端口扫描工具,而且nmap运用自带的脚本,还能完成漏洞检测,同时支持多平台
1 . 扫描参数
进入安装目录后,在命令行直接执行nmap或者查看帮助文档(输入 nmap -- help)


nmap常用命令

主机发现

iR                                                                随机选择目标

-iL                                                                从文件中加载IP地址

-sL                                                               简单的扫描目标

-sn                                                               Ping扫描-禁用端口扫描

-Pn                                                              将所有主机视为在在线,跳过主机发现

-PS[portlist]                                              (TCP SYN ping) 需要root权限

-PA[portlist]                                              (TCP ACK ping)

-PU[portlist]                                              (UDP  ping)

-PY [portlist]                                             (SCTP ping)

-PE/PP/PM                                                 ICMP回显,时间戳和网络掩码请求探测

-PO[协议列表]                                            IP协议Ping

-n/-R                                                           从不执行DNS解析/始终解析[默认:有时]

--dns-servers                                              指定自定义DNS服务器

--system-dns                                              使用OS的dns服务器

--traceroute                                                跟踪到每个主机的跃点路径

扫描技术

-sS                                                             使用TCP的SYN进行扫描

-sT                                                             使用TCP进行扫描

-sA                                                            使用TCP的ACK进行扫描

-sU                                                            UDP扫描

-sI                                                             Idle扫描

-sF                                                            FIN扫描

-b<FTP中继主机>                                     FTP反弹扫描

端口规格和扫描顺序

-p                                                              扫描指定端口

--exclude-ports                                         从扫描中排除指定端口

-f                                                               快速模式-扫描比默认扫描更少的端口

-r                                                               连续扫描端口-不随机化

--top-ports                                                 扫描<number>最常用的端口

服务/版本探测

-sV                                                            探测服务/版本信息

--version-intensity                                     设置版本扫描强度(0-9)

--version-all                                              尝试每个强度探测

--version-trace                                          显示详细的版本扫描活动(用于调试)

脚本扫描

-SC                                                           等效于 --script=defult

--script = <lua scripts>,<lua scripts>        以逗号分隔的目录,脚本文件或脚本类别

--script-args = <n1=v1, n2=v2>               为脚本提供参数

--script-args-file=文件名                          从文件名中加载脚本参数

--script-trace                                            显示发送和接受的所有数据

--script-updatedb                                     更新脚本数据库

--script-help=<lua scripts>                      显示有关脚本的帮助

操作系统检测

-o                                                            启用os检测

--osscan-limit                                          将os检测限制为可能的目标

--osscan-guess                                       推测操作系统检测结果

时间和性能

--host-timeout                                         设置超时时间

--scan-delay                                           设置探测之间的时间间隔

-T  <0-5>                                                设置时间模板,值越小,IDS报警几率越低

防火墙/IDS规避和欺骗

-f                                                             报文分段

-s                                                             欺骗源地址

-g                                                            使用指定的本机端口

--proxies <url,port>                                 使用HTTP/SOCK4代理

-data<hex string>                                   想发送的数据包中追加自定义的负载

--data-string                                            将自定义的ACSII字符串附加到发送数据包中   

--data-length                                           发送数据包时,附加随机数据

--spoof-mac                                            MAC地址欺骗

--badsum                                                发送带有虚假TCP/UNP/STCP校验和的数据包

输出

-oN                                                         标准输出

-oX                                                         XMl输出

-oS                                                         script jlddi3

-oG                                                        grepable

-oA                                                         同时输出三种主要格式

-v                                                           信息详细级别

-d                                                           调试级别

--packet-trace                                        跟踪发送和接收的报文

--reason                                                 显示端口处于特殊状态的原因

--open                                                    仅显示开放的端口

杂项

-6                                                          启动Ipv6扫描

-A                                                          启动Os检测,版本检测,脚本扫描和traceroute

-V                                                          显示版本号

-h                                                          帮助信息



回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-9-27 22:33:18 | 显示全部楼层
新的学习
linux 文件系统

Linux系统把每一个资源都看作是文件
etc配置文件目录





三级目录



系统内与账户相关的配置文件
etc/password

root2:x:0:0::/home/root2:/bin/bash
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
其中:

⒈[用户名]是passwd文件里各记录行唯一的有"唯一性"要求的域。也就是说每一行的第一个区域的内容都不能相同,其它区域就无所谓了。

⒉[密码]区域在以前,保存着一个经过不可逆的哈希算法进行DES加密的13位字符,但不包括单引号和冒号。这13位字符中,前两位是密钥,在加密的 时候随机生成的。由于这个字符串不包括单引号,所以以前有一种不修改密码又禁止用户登录的方式就是在密码前面加一个单引号。值得注意的是,现在由于使用了 shadow口令,在密码区域只有一个x字符。

⒊[UID]虽然是系统用来标志文件归属,确定各种权限的标志,但这个区域的内容并不要求唯一的。比较常见而又与安全问题相关的一个例子是有多个 UID和GID均为0的用户帐号。注意到在该文件最后一行还有一个UID和GID为0的用户imnotroot,虽然它声称自己不是root,但是它却有 和root完全相同的权限,因为系统并非根据[用户名],而是根据UID和GID来分用户的权力的。所以,这种情况无疑为系统埋下了安全的炸弹。但是,当 imnorroot做锁定屏幕等操作的时候,如果它的密码和root的不一样,它将无法解锁,因为系统只是查到第一个UID为0的用户(自然是root) 后,就不在往下查找了——它当UID也是唯一的。

⒋[GID]用户默认的组ID,这个ID可以在文件/etc/group里查到对应的组名。

⒌[身份描述]:就是用户的身份说明,默认的是无任何说明,可人工添加。

⒍[主目录]:用户的主目录,可以使用前面介绍的命令修改。

⒎[登录shell]:用户登录时系统提供的shell,请参考前面的有关内容。

<注意>:[UID]和[GID]小于500的一般都是系统自己保留,不做普通用户和组的标识的,所以新增加的用户和组一般都是UID和GID大于500的

账号

/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。

前面介绍了 /etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。

/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。
介绍此文件之前,我们先打开看看,执行如下命令:
[root@localhost ~]#vim /etc/shadow
root: $6$9w5Td6lg
$bgpsy3olsq9WwWvS5Sst2W3ZiJpuCGDY.4w4MRk3ob/i85fl38RH15wzVoom ff9isV1 PzdcXmixzhnMVhMxbvO:15775:0:99999:7:::
bin:*:15513:0:99999:7:::
daemon:*:15513:0:99999:7:::
…省略部分输出…
同 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
接下来,给大家分别介绍这 9 个字段。
用户名同 /etc/passwd 文件的用户名有相同的含义。
加密密码这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。
注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*" 或 "x" 使密码暂时失效。
所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!",代表这个用户没有密码,不能登录。
最后一次修改时间此字段表示最后一次修改密码的时间,可是,为什么 root 用户显示的是 15775 呢?

这是因为,Linux 计算日期的时间是以  1970 年 1 月 1 日作为 1 不断累加得到的时间,到 1971 年 1 月 1 日,则为 366 天。这里显示 15775 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 15775 天修改的 root 用户密码。

那么,到底 15775 代表的是哪一天呢?可以使用如下命令进行换算:
[root@localhost ~]# date -d "1970-01-01 15775 days"
2013年03月11日 星期一 00:00:00 CST
可以看到,通过以上命令,即可将其换算为我们习惯的系统日期。
最小修改时间间隔最小修改间隔时间,也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。

此字段是为了针对某些人频繁更改账户密码而设计的。
密码有效期经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。
该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码。
密码需要变更前的警告天数与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码!"。

该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 "修改密码" 的警告信息。
密码过期后的宽限天数也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。

比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
账号失效时间同第 3 个字段一样,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!

该字段通常被使用在具有收费服务的系统中。
保留这个字段目前没有使用,等待新功能的加入。忘记密码怎么办经常有读者会忘记自己的账户密码,该怎么处理呢?

对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码(利用 root 的身份使用 passwd 命令即可)。

如果 root 账号的密码遗失,则需要重新启动进入单用户模式,系统会提供 root 权限的 bash 接口,此时可以用 passwd 命令修改账户密码;也可以通过挂载根目录,修改 /etc/shadow,将账户的 root 密码清空的方法,此方式可使用 root 无法密码即可登陆,建议登陆后使用 passwd 命令配置 root 密码。




基本操作
前面学习过 已经有相应的日记


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-9-30 23:17:26 | 显示全部楼层
前几天事情实在是太多了 回宿舍已经十点多了 所以今天开始补 今天回来也是十点多

web主要题目类型(刚开始只是了解有什么和要学习什么)题目没有看写在里面方便以后看 今天主要是看题目类型

直接查看网页源码,即可找到 flag
考察基本的查看网页源代码、HTTP 请求、修改页面元素等 一般是签到题   需要多看基础知识 舒徐html css 和JavaScript
flag 一般都在注释里,有时候注释里也会有一条 hint 或者
是对解题有用的信息。
例题:《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第
一题:web2、bugku-ctf 第二题:计算器、
查看 http 请求/响应

使用 burp 查看 http 头部信息,修改或添加 http 请求头(referer--来源伪造,x
forwarded-for--ip 伪造,user-agent--用户浏览器,cookie--维持登陆状态,用户
身份识别)
可以用 hackbar,有的也可以写脚本
Get 和 post


例题:《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第三
题:web 基础$_GET、bugku-ctf 第四题:web 基础$_POST
响应:
例题:《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第八
题:你必须让他停下、bugku-ctf 第十一题:头等舱

不常见类型的请求发送

HTTP 头相关的题目
主要是查看和修改 HTTP 头。
姿势:不同的类型有不同的利用方法,基本都离不开抓包,有些简单的也可以利用浏览器 F12
的网络标签解决。但是最根本的应对策略,是
熟悉一些常见请求头的格式、作用等,这样考题目的时候就很容易知道要怎么做了。
查看相应头
有时候响应头里会有 hint 或者题目关键信息,也有时候会直接把 flag 放在响应头里给,但
是直接查看响应头拿 flag 的题目不多,
因为太简单了。
知识查看的话,可以不用抓包,用 F12 的“网络”标签就可以解决了
修改请求头、伪造 Cookie
常见的有 set-cookie、XFF 和 Referer,总之考法很灵活,做法比较固定,知道一些常见的请求
头再根据题目随机应变就没问题了。
有些题目还需要伪造 cookie,根据题目要求做就行了。
可以用 Burp 抓包,也可以直接在浏览器的 F12“网络”标签里改。
域名解析,伪造 host
例题:《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第七
题:域名解析、bugku-ctf 第十三题:管理员系统

ctf 之流量分析:
流量分析中 wireshark 的使用在下面介绍
例题
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第五题:flag
被盗、bugku-ctf 第六题:这么多数据包、
例题:
《007-CTF web 题型总结-第七课 CTF WEB 实战练习(三)》bugku-ctf 第一题:特殊的后门ctf 之日志审计:
例题
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第四题:日
志审计、
Webshell:
通过扫描后台路径,发现他人留下的 webshell;
例题:例题:《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf
第十二题:网站被黑
web 源码泄漏:
vim 源码泄漏(线上 CTF 常见)
如果发现页面上有提示 vi 或 vim,说明存在 swp 文件泄漏,地址:/.index.php.swp 或
index.php~
恢复文件 vim -r index.php,备份文件泄漏
地址:index.php.bak,www.zip,htdocs.zip,可以是 zip,rar,tar.gz,7z 等
例题:
《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第五题:备
份是个好习惯
例题:
《007-CTF web 题型总结-第七课 CTF WEB 实战练习(三)》bugku-ctf 第三题: bugku
导航
.git 源码泄漏
地址:http://www.xxx.com/.git/config,工具:GitHack,dvcs-rippersvn 导致文件泄漏
地址:http://www/xxx/com/.svn/entries,工具:dvcs-ripper,seay-svn
Git 源码泄露
flag 一般在源码的某个文件里,但也有和其他知识结合、需要进一步利用的情况,
比如 XCTF 社区的 mfw 这道题。
姿势:GitHack 一把梭

编码和加解密,各类编码和加密
可以使用在线工具解密,解码
例题:《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第
六题:web3、bugku-ctf 第一题:web4 (看看源代码吧)、
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第
三题:速度要快、bugku-ctf 第四题:cookies 欺骗、bugku-ctf 第五题:never
give up
windows 特性,短文件名
利用~字符猜解暴露短文件/文件夹名,如 backup-81231sadasdasasfa.sql 的长文件,其短文
件是 backup~1.sql,iis 解析漏洞,绕过文件上传检测
php 弱类型
php 弱类型第二课会涉及。
例题:
《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第五题:矛
盾PHP 伪协议
在 CTF 中经常出现,也经常跟文件包含,文件上传,命令执行等漏洞结合在一起。
php 伪协议在第二课会涉及;
例题:
例题:
《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第二题:flag
在 index 里
例题:
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第七题:web8
(txt????)
绕 waf
大小写混合,使用编码,使用注释,使用空字节
python 爬虫信息处理
这类题目一般都是给一个页面,页面中有算式或者是一些数字,要求在很短的时间内求出结
果并提交,如果结果正确就可以返回 flag。
因为所给时间一般都很短而且计算比较复杂,所以只能写脚本。这种题目的脚本一般都需要
用到 requests 库 BeauifulSoup 库(或者 re 库(正则表达式)),个人感觉使用 BeautifulSoup
简单一些。
姿势:requests 库和 BeautifulSoup 库熟练掌握后,再多做几道题或者写几个爬虫
的项目,一般这类题目就没什么问题了。主要还是对 BeautifulSoup 的熟练掌握,
另外还需要一点点 web 前端(html)的知识。PHP 代码审计
代码审计覆盖面特别广,分类也很多,而且几乎什么样的比赛都会有,算是比较重
要的题目类型之一吧。
姿势:具体问题具体分析,归根结底还是要熟练掌握 PHP 这门语言,了解一些常见
的会造成漏洞的函数及利用方法等。
数组返回 NULL 绕过
PHP 绝大多数函数无法处理数组,向 md5 函数传入数组类型的参数会使 md5()函数返回
NULL(转换后为 False),进而绕过某些限制。如果上面的代码变成:
if(md5($a) === md5($b)) { //两个等号变成三个
echo $flag;
}
那么利用弱类型 hash 比较缺陷将无法绕过,这时可以使用数组绕过。传入?a[]=1&b[]=2 就
可以成功绕过判断。这样的方法也可以用来绕过 sha1()等 hash 加密函数相关的判断,也可
以绕过正则判断,可以根据具体情况来灵活运用。
例题《
:005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第九题:
变量 1
正则表达式相关
ereg 正则%00 截断
ereg 函数存在 NULL 截断漏洞,使用 NULL 可以截断过滤,所以可以使用%00 截断正则匹配。
Bugku ereg 正则%00 截断:http://123.206.87.240:9009/5.php
数组绕过
正则表达式相关的函数也可以使用数组绕过过滤,绕过方法详见数组返回 NULL 绕过。
上面那道题也可以用数组绕过。
单引号绕过 preg_match()正则匹配
在每一个字符前加上单引号可以绕过 preg_match 的匹配,原理暂时不明。命令执行漏洞
assert()函数引起的命令执行
ssert 函数的参数为字符串时,会将字符串当做 PHP 命令来执行。例如:assert('phpinfo()')相
当于执行<?php phpinfo() ?>
XSS 题目
这类题目会涉及到三种 XSS 类型,具体类型要根据题目来判断。一般都是向后台发
送一个带有 XSSPayload 的文本,在返回的 Cookie 中含有 flag,解法是在 XSS
Payload。这类题目一般都会带有过滤和各种限制,需要了解一些常用的绕过方
法。姿势:XSS 归根结底还是 JavaScript,JavaScript 的威力有多大,XSS 的威
力就有多大。要知道一些常用的 XSSPayload,还要把三类 XSS 的原理弄明白。做
题时需要用到 XSS 平台,网上有公用的,也可以自己在 VPS 上搭一个。
JavisOJ babyxss:http://web.jarvisoj.com:32800/
绕过 waf
其实绝大多数比较难的题目多多少都会对输入有过滤,毕竟在现实的网络中肯定是会对输入
进行限制的,但是这里还是把过滤单独列出来了。姿势:多掌握一些不同的绕过方法。
长度限制
有些题目会要求输入较长的文本,但对文本的长度进行了限制。对于这种题目,既可以用
BurpSuite 抓包改包绕过,也可以直接在 F12 里改页面源代码。
Bugku 计算器(修改页面源代码):http://123.206.87.240:8002/yanzhengma/
DVWA 存储型 XSS 的标题栏会对长度进行限制,使用 BurpSuite 抓包绕过。
双写
双写可以绕过对输入内容过滤的单次判断,在 XSS、SQL 注入和 PHP 代码审计的题目中比
较常见。双写顾名思义就是将被过滤的关键字符写两遍,比如,如果要添加 XSSPayload,又
需要插入<script>标签,就可以构造如下的 Payload:<scr<script>ipt>来绕过对<script>标
签的单次过滤限制。这样的方法不仅对 XSS 有用,也可以用于代码审计和 SQL 注入。
HGAME2019 有一道 XSS 题目就是过滤了<script>,可以用双写绕过。等价替代
就是不用被过滤的字符,而使用没有被过滤却会产生相同效果的字符。比如,如果
SQL 注入题目中过滤了空格,可以用/**/绕过对空格的限制;XSS 题目如果过滤了
<script>标签,可以使用其他类型的 payload;如果需要使用 cat 命令却被过滤,
可以使用 tac、more、less 命令来替代等。
URL 编码绕过
如果过滤了某个必须要用的字符串,输入的内容是以 GET 方式获取的(也就是直接
在地址栏中输入),可以采用 url 编码绕过的方式。比如,过滤了 cat,可以使用
c%61t 来绕过。
Linux 命令使用反斜杠绕过
在 Linux 下,命令中加入反斜杠与原命令完全等价。例如,cat 与 ca\t 两条命令等价,效果
完全相同。可以利用这个特性来进行一些绕过操作(当然,这个仅限于命令执行漏洞)。
URL 二次解码绕过
这个类型本来应该放在代码审计里面,但是既然是一种绕过过滤的姿势,就写在这里了。如
果源码中出现了 urldecode()函数,可以利用 url 二次解码来绕过。以下是一些常用的 HTML
URL 编码:
数组绕过
详见 PHP 代码审计的“数组返回 NULL”绕过。数组绕过的应用很广,很多题目都可以用数组
绕过。
上传绕过
例题:
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第二题:求
getshellSQL 注入
SQL 注入是一种灵活而复杂的攻击方式,归根结底还是考察对 SQL 语言的了解和根据输入
不同数据网页的反应对后台语句的判断,当然也有 sqlmap 这样的自动化工具可以使用。姿
势:如果不用 sqlmap 或者是用不了,就一定要把 SQL 语言弄明白,sqlmap 这样的自动化
工具也可以使用。
使用 sqlmap
sqlmap 的应用范围还不大明确,我都是如果 sqlmap 没法注入就手工注入。
sqlmap 教程:https://www.jianshu.com/p/4509bdf5e3d0
例题
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第一
题:成绩单、bugku-ctf 第三题:多次
爆破:
这个可以直接看例题
例题:
《005-CTF web 题型总结-第五课 CTF WEB 实战练习(一)》bugku-ctf 第三
题:输入密码查看 flag
Python 直接上脚本:
例题
《006-CTF web 题型总结-第六课 CTF WEB 实战练习(二)》bugku-ctf 第二
题:秋名山老司机



回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-10-9 21:59:36 | 显示全部楼层
CTF 的五大类   web   crypto  PWN  misc(杂项)   reverse(D:\CTF教程\CTF入门课程(高清1080P )视频6)

PWN Reverse 偏重汇编 逆向的理解

Crypto 偏重数学算法的学习
web侧重 技巧沉淀 快速搜索
misc最为复杂 所有计算机安全挑战都和他有关

分析自身能力
常规做法
A 方向 PWN+Reverse+Crypto
B 方向  WEB +MISC组合
都需要学习的内容:linux基础 计算机组成原理 操作系统原理 网络协议分析
A 方向:
IDA
工具使用 逆向工程 密码学 缓冲区溢出   相关书籍  RE for Beginners(逆向工程入门)_  IDA Pro 权威指南  揭秘家庭路由器Oday漏洞挖掘技术  黑客攻防技术宝典
B方向:
网络安全,内网渗透,数据库安全   相关书籍  web应用安全权威指南 web前端黑客技术揭秘  黑客秘籍  黑客攻防宝典

如何入门
从基础题目出发
idf实验室的题目(比较基础)
i春秋
xctf提供的题目
www.wechall.net/challs
https://microcorruption.com/login
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-10-15 23:07:45 | 显示全部楼层
本帖最后由 Pluto 于 2020-10-15 23:08 编辑

看了 burp进阶知识 (第三章)
Scanner

urp Scanner主要用于自动检测Web系统的各种漏洞。

实践时出现问题,Burp Suite需要破解,否则Scanner模块不能用:

教程:https://www.jianshu.com/p/a4556f12af54(亲测有效) chmod +x burpsuite.sh

1.主动扫描

Burp 会向应用发送新的请求并通过Payload验证漏洞。适用于一下这两类漏洞:

  • 客户端的漏洞,如XSS、HTTP头注入、操作重定向。
  • 服务端的漏洞,如SQL注入、命令行注入、文件遍历。

2.被动扫描

Burp 不会重新发送新的请求,只是对已经存在的请求和应答进行分析,对服务端的检测来说,这比较安全。

Intruder

Intruder是一个可定制的高度可配置的工具,可以对web应用程序进行自动化攻击,如通过标识符枚举用户名、ID账户号码,模糊测试,SQL注入,跨站,目录遍历等。

目标:http://43.247.91.228:81/login.php

在Proxy中选中内容,将数据包发送到Intruder模块,

选中password参数,单击ADD$,这里只对一个参数进行暴力破解,所以攻击类型使用sniper即可,

4种模式:

  • Snipper
  • Battering
  • Pitchfork
  • Cluster bomb

选择要添加的字典

在结果处对status或Length的返回值进行排序,查看是否有不同之处。若有,查看返回包是否显示为登录成功,若有明显信息,说明已经破解成功。

是一个手动修改、补发个别HTTP请求,并分析它们的响应的工具。

分析选项有4种:

  • Raw:显示纯文本格式的信息。
  • Params:对应包含参数的请求,会把这些参数显示为 name---value格式
  • Headers:将以name-value格式显示HTTP的消息头,并以原始格式显示消息体
  • Hex:允许直接编辑由原始二进制数据组成的消息
  • Sequencer

    是一种用于分析数据样本随机性质量的工具。可以用它测试应用程序的会话令牌(Session Token)、密码重置令牌是否可预测等情景。主要由信息截取、手动加载、和选项分析三个模块组成。


社会工程学(https://websec.readthedocs.io/zh/latest/info/social.html企业信息收集

一些网站如天眼查等,可以提供企业关系挖掘、工商信息、商标专利、企业年报等信息查询,可以提供企业的较为细致的信息。

公司主站中会有业务方向、合作单位等信息。


人员信息收集

针对人员的信息收集考虑对目标重要人员、组织架构、社会关系的收集和分析。其中重要人员主要指高管、系统管理员、运维、财务、人事、业务人员的个人电脑。

人员信息收集较容易的入口点是网站,网站中可能包含网站的开发、管理维护等人员的信息。从网站联系功能中和代码的注释信息中都可能得到的所有开发及维护人员的姓名和邮件地址及其他联系方式。

在获取这些信息后,可以在Github/Linkedin等社交、招聘网站中进一步查找这些人在互联网上发布的与目标站点有关的一切信息,分析并发现有用的信息。

此外,可以对获取到的邮箱进行密码爆破的操作,获取对应的密码。


钓鱼

基于之前收集到的信息,可以使用Office/CHM/RAR/EXE等文件制作钓鱼邮件发送至目标,进一步收集信息。

其中Office可以使用Office漏洞、宏、OLE对象、PPSX等方式构造利用文件。

Exe可以使用特殊的Unicode控制字符来构建容易混淆的文件名。

如果前期信息收集获取到了运维等人员的邮箱,可以使用运维人员的邮箱发送,如果未收集到相关的信息,可以使用伪造发送源的方式发送邮件。


其他信息

公司的公众号、企业号、网站,员工的网盘、百度文库等可能会存在一些敏感信息,如VPN/堡垒机账号、TeamViewer账号、网络设备默认口令、服务器默认口令等。


回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-10-18 23:39:16 | 显示全部楼层
web 安全攻防 cdn查询真实ip方法总结()

信息收集:

服务器配置、网站敏感信息(后台、文件目录、敏感文件、注入点、上传点、xss点、域名、子域名)、目标网站系统、cms指纹、真实ip、开放端口。

爱站:https://www.aizhan.com

可以获取一般网站的ip,域名,子域名,服务器信息

绕过CDN查找网站真实IP方法收集

方法1
很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有

  • http://ping.chinaz.com/
  • http://ping.aizhan.com/
  • http://ce.cloud.360.cn/
  • http://itools.com/tool/just-ping

方法2
使用各种工具帮助检测目标网站是否使用了 CDN,可以参见如下网站:

  • http://www.cdnplanet.com/tools/cdnfinder/
  • http://www.ipip.net/ip.html

绕过方法

1 查询历史DNS记录
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:

  • https://dnsdb.io/zh-cn/
  • https://x.threatbook.cn/
  • http://toolbar.netcraft.com/site_report?url=
  • http://viewdns.info/

2 查询子域名
毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。

3 利用网站漏洞(这个不懂)
这个就没什么好说的了,目的就是让目标服务器主动来连接我们,这样我们就知道其真实IP了,可用的比如XSS盲打,命令执行反弹shell,SSRF等等

4 服务器合法服务主动连接我们
同上一样的思路就是让服务器主动连接我们告诉我们它的IP,不过使用的是合法的服务,如RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。

5 使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。

域名:http://www.just-ping.com/

6 目标敏感文件泄露
也许目标服务器上存在一些泄露的敏感文件中会告诉我们网站的IP,另外就是如 phpinfo之类的探针了

7 从 CDN 入手
无论是用社工还是其他手段,反正是拿到了目标网站管理员在CDN的账号了,此时就可以自己在CDN的配置中找到网站的真实IP了。

8 WWW

域名使用cdn,秃域名不适用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了?

9 google

Google site一下目标的域名,看有没有二级域名出现,挨个排查,确定了没使用cdn的二级域名后,host本地将目标域名绑定到同ip,能访问就说明目标站与此二级域名在同一个服务器上。

10 fish diaoyu

原文地址:http://dou.lu/737.xsafe

11 Dnsdb查询法。(https://dnsdb.io/zh-cn/)

  黑客只需输入baidu.com type:A就能收集百度的子域名和ip了

12 子域名挖掘机和lijiejie的subdomainbrute(https://github.com/lijiejie/subDomainsBrute)

13 网络空间引擎搜索法

常见的有以前的钟馗之眼,shodan(https://www.shodan.io/),fofa搜索(https://fofa.so/)。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。

https://blog.csdn.net/weixin_407 ... RCH-7.channel_param



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 04:29 , Processed in 0.039640 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表