CTF-WEB
2020-12-10 14:19:03 4 举报
AI智能生成
CTF知识点汇总
作者其他创作
大纲/内容
绕WAF
绕Mysql
绕文件读取关键词检测
大小写混合
小写或大写的关键字匹配技术,正则表达式/express/i 大小写敏感即无法绕过
替换关键字
大小写转化无法绕过,而且正则表达式会替换或删除select、union这些关键字,如果只匹配一次就很容易绕过
?id=-15 UNIunionON SELselectECT 1,2,3,4
使用编码
URL编码 ,存在一种情况URL编码只进行了一次过滤,可以用两次编码绕过
十六进制编码
Unicode编码
使用注释
常见注释符号://, – , /**/, #, --+,-- -, ;,–a
普通注释
/**/在构造得查询语句中插入注释,规避对空格的依赖或关键字识别;#、–+用于终结语句的查询
内联注释
/!**/只有MySQL能识别
等价函数与命令
函数或变量
hex()、bin() ==> ascii()
sleep() ==>benchmark()
concat_ws()==>group_concat()
mid()、substr() ==> substring()
@@user ==> user()
@@datadir ==> datadir()
符号
and和or有可能不能使用,或者可以试下&&和||能不能用
=不能用,可以考虑尝试<、>(不小于又不大于,即等于)
生僻函数
特殊符号
比较常用的 `、~、!、@、%、()、[]、.、-、+ 、|、%00
有点关系的 >>, <<, >=, <=, <>,<=>,XOR, DIV, SOUNDS LIKE, RLIKE, REGEXP, IS, NOT, BETWEEN
反引号`
可以用来过空格和正则,特殊情况下还可以将其做注释符用
“-+.”
例如select+id-1+1.from users;,“+”是用于字符串连接的,”-”和”.”在此也用于连接,可以逃过空格和关键字过滤
@符号
例如select@^1.from users, @用于变量定义如@var_name,一个@表示用户定义,@@表示系统变量
Mysql function() as xxx
也可不用as和空格,例如select-count(id)test from users; //绕过空格限制
HTTP参数控制
HPP(重复参数污染)
id=1/**/union/*&id=*/select/*&id=*/pwd/*&id=*/from/*&id=*/users
HPF(HTTP分割注入)
使用%0a,%0d等执行
/?a=1+union/*&b=*/select+1,pass/*&c=*/from+users--
密码题
hash长度扩展
异或
移位加密
32位随机数过小
进制
编码
文件上传
javascript验证突破
大小写突破
服务器文件扩展名检测
过滤文件名突破
特殊后缀名
MIME类型检测
文件内容检测
分布式配置文件(文件重写)
0x00截断(目录路径检测)
Zip解压上传
Apache解析漏洞
IIS6.0解析漏洞
IIS 7.0/IIS 7.5/ Nginx <0.8.03畸形解析漏洞
函数绕过
open_basedir
disable_functions
dl漏洞
mail漏洞
imagick漏洞
bash漏洞漏洞
DirectoryIterator及各种二进制选手插足的方法
社工
SSRF
花式探测端口
302跳转
花式协议利用
gophar直接取shell
SSRF+redis未授权访问
XXE
各种存在XML的地方(rss/word/流媒体)
各种XXE利用方法(SSRF、文件读取)
爆破
MD5
随机数
验证码识别
PHP特性
弱类型
比较操作符
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较。
== 在进行比较的时候,会先将字符串类型转化成相同,再比较。
Hash比较缺陷
strcmp漏洞绕过 php --version <5.3
strcmp是比较两个字符串,如果str1< str2 则返回< 0,如果str1大于str2返回>0, 如果两者相等返回0。
json绕过
条件语句的松散判断
in_array/array_search
in_array和array_search会对类型进行强制转换,并且是==进行比较,所以可以绕过。
strpos(查找字符串首次出现的位置)
反序列化 + destruct
\0截断
iconv截断
16个魔术方法
__construct(),类的构造函数,:当一个类被创建时自动调用
__destruct(),类的析构函数,当一个类被销毁时自动调用
__sleep(),执行serialize()进行序列化时,先会调用这个函数
__wakeup(),执行unserialize()进行反序列化时,先会调用这个函数
__toString(),当把一个类当作函数使用时自动调用
__invoke(),当把一个类当作函数使用时自动调用
__call(),在对象中调用一个不可访问方法时调用
__callStatic(),用静态方式中调用一个不可访问方法时调用
__get(),获得一个类的成员变量时调用
__set(),设置一个类的成员变量时调用
__isset(),当对不可访问属性调用isset()或empty()时调用
__unset(),当对不可访问属性调用unset()时被调用。
__set_state(),调用var_export()导出类时,此静态方法会被调用。
__clone(),当对象复制完成时调用
__autoload(),尝试加载未定义的类
__debugInfo(),打印所需调试信息
信息泄露
.hg源码泄露
漏洞成因
hg init的时候会生成.hge.g.http://www.am0s.com/.hg/
漏洞利用
工具:dvcs-ripperrip-hg.pl -v -u http://www.am0s.com/.hg/
.git源码泄露
漏洞成因
漏洞成因: 在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。e.g. http://www.am0s.com/.git/config
漏洞利用
工具:GitHack GitHack.py http://www.am0s.com/.git/ 工具: dvcs-ripper rip-git.pl -v -u http://www.am0s.com/.git/
.DS_Store文件泄露
漏洞成因
在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。 e.g. http://www.am0s.com/.ds_store
漏洞利用
注意路径检查 工具: dsstoreexppython ds_store_exp.py http://www.am0s.com/.DS_Store
网站备份压缩文件
漏洞成因
服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。
编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。
漏洞利用
.rar
.zip
.7z
.tar.gz
.bak
.swp
.txt
.html
.rar
.zip
.7z
.tar.gz
.bak
.swp
.txt
.html
SVN导致文件泄露
漏洞成因
漏洞成因:Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。 Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。e.g.http://www.am0s.com/admin/scripts/fckeditor.266/editor/.svn/entries
漏洞利用
工具: dvcs-ripperrip-svn.pl -v -u http://www.am0s.com/.svn/
WEB-INF/web.xml泄露
漏洞成因
WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。 WEB-INF主要包含以下文件或目录:
漏洞利用
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件
CVS泄露
http://www.am0s.com/CVS/Entries 返回所有文件的结构取回源码的命令bk clone http://www.am0s.com/name dir 这个命令的意思就是把远端一个名为name的repo clone到本地名为dir的目录下。 查看所有的改变的命令,转到download的目录bk changes
Bazaar/bzr
漏洞利用
工具: dvcs-ripperrip-bzr.pl -v -u http://www.am0s.com/.bzr/
robots.txt
readme.txt
Mysql类型
相似于php弱类型的特性 ,0x、0b、1e
varchar和integer相互转换
条件竞争
竞争删除前生成shell
竞争数据库无锁执行恶意操作
windows特性
短文件名
IIS解析漏洞
NTFS文件系统通配符
::$DATA
冒号截断
XSS
浏览器auditor绕过
富文本过滤黑名单绕过
flash xss
CSP绕过
协议
花式IP伪造 X-Forwarded-For/X-Client-IP/X-Real-IP/CDN-Src-IP
花式改UA
花式藏FLAG
花式分析数据包
0 条评论
下一页