安全面试5

发布于:2025-02-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

sql的二次注入

SQL 二次注入是指攻击者通过输入恶意数据,将恶意 SQL 语句存储到数据库中。当应用程序在后续操作中从数据库读取这些数据并直接拼接到 SQL 查询中时,恶意代码就会被执行,从而导致攻击成功

在linux下,现在有一个拥有大量ip地址的txt文本文档,但是里面有很多重复的,如何快速去重?

  1. sort 排序并去重:sort -u ip_addresses.txt > unique_ips.txt
  2. uniq 去重:sort ip_addresses.txt | uniq > unique_ips.txt
  3. 使用 awk 去重:awk ‘!seen[$0]++’ ip_addresses.txt > unique_ips.txt

在内网渗透中,通过钓鱼邮件获取到主机权限,但是发现内网拦截了tcp的出网流量,聊一下这个时候应该怎么进行通信?

  1. 使用DNS隧道
  2. 使用ICMP隧道
  3. 使用HTTP/HTTPS隧道
  4. 使用邮件协议
  5. 使用SMB协议
  6. 使用WebSocket
  7. 使用隐蔽通道
  8. 使用UDP协议

二次注入要怎么修复

  1. 使用参数化查询
  2. 对从数据库读取的数据进行验证
  3. 对从数据库读取的数据进行转义
  4. 使用ORM(对象关系映射)框架

文件下载漏洞有没有什么比较好的利用方式

下载敏感配置文件

Linux:

  1. /etc/passwd:用户账户信息。
  2. /etc/shadow:用户密码哈希。
  3. /etc/my.cnf:MySQL配置文件。
  4. /root/.ssh/authorized_keys:SSH公钥文件。
  5. /root/.bash_history:用户命令历史记录

Windows:

  1. C:\Windows\System32\inetsrv\MetaBase.xml:IIS配置文件。
  2. C:\Windows\php.ini:PHP配置文件。
  3. C:\Program Files\mysql\my.ini:MySQL配置文件

下载Web应用程序源代码

  1. PHP:下载index.php、config.php等文件,审计SQL注入、文件上传等漏洞110。
  2. Java:下载WEB-INF/classes/applicationContext.xml和WEB-INF/classes/xxx/xxx/ccc.class,反编译后审计代码。
  3. ASP.NET:下载web.config,获取数据库连接字符串和其他配置信息

下载日志文件

  1. Web服务器日志:如Apache的access.log、IIS的日志文件。
  2. 应用程序日志:如Tomcat的catalina.out、Spring Boot的日志文件

命令执行漏洞,http不出网有什么比较好的处理方法

  1. 利用内存马注入:在不出网场景下,攻击者可将恶意代码注入服务器内存,避免文件落地。例如,通过SnakeYaml反序列化漏洞加载本地JAR包生成冰蝎内存马,直接与攻击者建立加密通信通道
  2. 本地文件写入与结果提取:路径探测:通过系统命令(如dir /s/a-d/b web.xml或find / -name “*.jsp”)查找Web应用可写目录,写入WebShell。需注意特殊字符转义,可采用Base64编码后解码写入
  3. 数据库外连:若目标服务器可连接外部数据库,可将命令结果写入数据库字段,再通过查询导出数据。
  4. 邮件服务:通过mail或sendmail命令将结果发送至攻击者邮箱,需目标服务器启用邮件服务

怎么判断一个数据库是mysql还是oracle的?

  1. 错误页面特征:mysql:错误信息通常包含MySQL字样Oracle:错误信息通常包含ORA-前缀。
  2. 通过SQL语法差异判断:MySQL:查询information_schema.tables。Oracle:查询all_tables。
  3. 默认端口:MySQL:默认端口是3306。Oracle:默认端口是1521。
  4. 使用Nmap扫描:nmap -sV -p 3306,1521 <target_ip>
  5. 时间函数:MySQL:使用NOW()或SYSDATE()。Oracle:使用SYSDATE。