哇咔咔

75 阅读5分钟

1、CVE-2022-28524

CVE-2022-28524 是 ED01-CMS v20180505 中的 SQL 注入漏洞1。以下是其形成原因、影响范围和危险等级的介绍

  • 形成原因:(用自己的话说 不要求一致)该漏洞存在于 post.php 组件中,由于程序对用户输入的数据过滤和验证不严格,导致攻击者可以通过特制的 SQL 查询注入代码,进而访问或篡改数据库中的数据。
  • 影响范围:使用 ED01-CMS v20180505 版本的系统。
  • 危险等级:属于 “严重” 级别。
  • 检测工具:Sqlmap
  • 名称:SQL 注入漏洞
  • 触发漏洞的代码:
$q="UPDATE cms posts SET post views count = post views count + 1 WHERE post id = $pid"

2、御剑扫描此题当作问答题做 是研究登录密码的扫描问题

测试过程中使用工具的名称 御剑和burpsuite

敏感文件名称:robots.txt、zidian.txt、admin.php

安全压力测试策略:运用 Burp Suite 工具实施后台账户密码破解测试,通过调整线程数量,评估网站在超过特定线程值时是否会崩溃

修复意见:强化信息安全防护需要全方位布局:在信息泄露防护方面,需保障敏感文件存储位置的安全,严格管理文件访问权限,定期清理冗余文件,并进行常态化安全审计和漏洞扫描;在后台密码保护方面,应建立账号登录失败次数限制,达到阈值后锁定账号,同时设置 IP 地址登录失败次数限制,超过后封锁 IP,采用多因素认证如 "密码 + 短信验证码",并要求用户使用复杂密码。

3、Sqlmap的命令

  1. 判断注入点的命令
    python sqlmap.py -u <目标URL>
  2. 测试出数据库名字的命令
    python sqlmap.py -u <目标URL> --dbs
  3. 测试出数据表名字的命令
    python sqlmap.py -u <目标URL> -D 数据库名 --tables
  4. 测试出数据列名字的命令
    python sqlmap.py -u <目标URL> -D 数据库名 -T 数据表名 --columns
  5. 测试出数据列具体数值的命令
    python sqlmap.py -u <目标URL> -D 数据库名 -T 数据表名 -C 数据列名 --dump

4、测试报告数据整理

测试报告(根据下文大概改改)

一、基本信息

测试对象:IP 192.168.13.131(Windows 7 系统 )
测试人员:[姓名 + 考生编号]
日期:考试日期

二、漏洞情况

信息泄露:phpinfo.php可查敏感配置 。

SQL 注入:SqlMap 爆出数据库,存在注入风险 。

补丁缺失:未装 KB4012212、KB4012215,139/445/3389 端口开放,易受攻击 。

三、修复建议

限制phpinfo.php访问;过滤输入,用预处理语句防注入;安装补丁,非必要则关闭端口

5、代码分析漏洞

分析以下代码:写出代码名称;写出利用漏洞工具;写出2个修复建议。

from flask import Flask, request, session

app = Flask(name)

app.secret_key = 'SecretKey'

products_db = {
"1": {"product_id": "1", "product_name": "Product1", "price": 100},
"2": {"product_id": "2", "product_name": "Product2", "price": 200},
}

@app.route('/edit_product', methods=['POST'])
def edit_product():
product_id = request.form['product_id']
new_product_name = request.form['product_name']
new_price = float(request.form['price'])

漏洞: 未验证执行操作的用户是否具有编辑该商品ID的资格
应该对比用户的session中的相关信息和请求修改的product_id是否一致

if product_id not in products_db:
return "Product not found", 404

更新商品信息
products_db[product_id]['product_name'] = new_product_name
products_db[product_id]['price'] = new_price

return "Product information updated"

if name == "main":
app.run(debug=True)

问题与答案

1.存在什么漏洞?答案:存在提权漏洞

2.攻击工具有哪些?答案:Postman(必写)、 Burpsuite(必写)、AppScan、AWVS(2选1)

3.如何修补根据下面的内容自己AI重写(3选2)------

答案:

(1)在服务器端强制实施访问控制检查机制
(2) 对用户操作权限进行严格验证
(3)使用不可预测的标识符或隐藏内部ID

6、Sql注入测试

1.打开http://1.94.2.221:7002/sqlinject.php(实际考试的时候由考场给出)

在用户名出输入 : admin' # ,密码空着,出现下图(注意' #中间有空格,且为英文字符)

②写出测试过程中使用工具的名称。

sqlmap 、御剑

③写出收集到的敏感文件名称。

sqlinject.php www.rar

④写出对SQL注入漏洞提出修复意见(自行百度针对问题多写几条)

  1. 强制使用参数化查询 禁止直接直接拼接用户输入与 SQL 语句,改用参数化查询(Prepared Statement)或预编译语句
  2. 严格验证与过滤用户输入对所有用户可控输入(如表单、URL 参数、Cookie 等)进行严格校验
  3. 遵循数据库最小权限原则应用程序连接数据库的账号应仅授予 “必要权限”,禁止过度授权
  4. 避免动态拼接 SQL(尤其表名 / 字段名 尽量减少通过用户输入动态生成表名、字段名等 SQL 结构
  5. 使用 ORM 框架与安全工具

7、网络漏洞扫描

①访问服务器的IP地址进行渗透测试,收集全部flag截图

练习的网址 http://1.94.2.221:7002  (注意视频里面是端口是7001   此处要修改为7002)考试时会给别的网址。不用背 (注意不能带空格)

注意2:御剑在扫描时 地址栏前面不能有空格

1.存在的漏洞:信息泄露(FLAG1 dir_clean一扫就出,根据文件名判断 ) 答题要求:漏洞名称+截有FLAG文字的图

2.存在的漏洞:弱口令(login.php 用户名admin 密码 admin123)答题要求: 漏洞名称+截有FLAG文字的图

3.存在的漏洞:备份文件泄露(config.php.bak一扫就出,根据文件名判断)答题要求:漏洞名称+ 截有FLAG文字的图

4.存在的漏洞 :日志漏洞(include.php) 答题要求:漏洞名称+截有FLAG文字的图

5.存在的漏洞:提权漏洞(压缩包的密码在压缩文件的注释里 自己找 不解答)