知道了一个网站的管理员数据表,怎么SQL注入修改它
答案:1 悬赏:20
解决时间 2021-10-04 18:57
- 提问者网友:人傍凄凉立暮秋
- 2021-10-04 12:07
知道了一个网站的管理员数据表,怎么SQL注入修改它
最佳答案
- 二级知识专家网友:往事埋风中
- 2021-10-04 12:37
如果知道链接数据库的账号和密码,直接用数据库链接工具链接后,修改管理员数据表即可。
只知道表的名,以及字段名,别的不知道。就看你写的程序有没有SQL注入的漏洞了。也就是,SQL语句是不是通过字符串拼加的方式,而且没有校验输入的值。
一个例子:
String UserID =“ajie";
String a = “Selected password from User where UserID = ‘” + UserID + "'";
--通过直接执行A变量里的SQL;
如果UserID是ajie,则没问题,会在User表中找到对应的PassWord,如果没找到,则返回空集合。
但是,如果数据库是SQL Server。而又没有验证UserID的值。
那么如果UserID的值为:UserID = " ' Update User Set Password = '1234567' where UserID = 'ajie' --"
那么这个就构造了一个SQL注入攻击,最终的效果是把UserID字段为ajie的那条记录的密码(password)更改为1234567.
如果在参数级别加了验证,那么此方法就行不通了。
令,最好不要相信客户端传来的参数,最好在提交数据的时候加二次验证。否则,会造成SQL注入攻击。这个和数据库没有关系,只和变成习惯有关。
具体的SQL注入攻击,请查询相关资料,但是基本的实现就是这个了。在写代码的时候,一定要注意的一点。
只知道表的名,以及字段名,别的不知道。就看你写的程序有没有SQL注入的漏洞了。也就是,SQL语句是不是通过字符串拼加的方式,而且没有校验输入的值。
一个例子:
String UserID =“ajie";
String a = “Selected password from User where UserID = ‘” + UserID + "'";
--通过直接执行A变量里的SQL;
如果UserID是ajie,则没问题,会在User表中找到对应的PassWord,如果没找到,则返回空集合。
但是,如果数据库是SQL Server。而又没有验证UserID的值。
那么如果UserID的值为:UserID = " ' Update User Set Password = '1234567' where UserID = 'ajie' --"
那么这个就构造了一个SQL注入攻击,最终的效果是把UserID字段为ajie的那条记录的密码(password)更改为1234567.
如果在参数级别加了验证,那么此方法就行不通了。
令,最好不要相信客户端传来的参数,最好在提交数据的时候加二次验证。否则,会造成SQL注入攻击。这个和数据库没有关系,只和变成习惯有关。
具体的SQL注入攻击,请查询相关资料,但是基本的实现就是这个了。在写代码的时候,一定要注意的一点。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯