Web攻击思路:
踩点(尽可能的分析一切信息)→找上传漏洞(有,上传木马)→暴库(成功爆破后直接登录后台)→SQL注入(先工具后手工)→获取Web管理密码(没成功,寻其他法)→登录后台(否,万能密码,再否再寻)→上传木马(有过滤,找备份或其他方法)→提权
SQL注射思路:
1.判断URL是否可以注射
2.判断数据库类型
3.确定xp_CMDSHELL可执行情况
4.猜测或直接获得表名或字段名
5.构造语句得出字段的值
SQL注入的实际操作(实例数据库为ACCESS):
1.判断是否存在注入点
xxx.aspx?id=xx'返回异常页面
xxx.aspx?id=xxand1=1返回页面正常
xxx.aspx?id=xxand1=2返回异常页面
上述三点均满足,才能说明存在注入点
2判断数据库的类型
方法一:利用单引号判断
如果引擎为:JET则数据库为ACCESS,引擎为ODBC则为SQL数据库
方法二:利用系统表
ACCESS系统表为msysobjects(在Web上无访问权限),
SQL系统表为sysobject(在Web上拥有访问权限)
规则两条:
①xxx.aspx?id=xxand(selectcount(*)fromsysobjects)>0
②xxx.aspx?id=xxand(selectcount(*)frommsysobjects)>0
若数据库为MSSQL,第一条正常,第二条报错,ACCESS则会全部报错(access之所以会全部报错是因为它在Web环境下没有访问的权限)
3.确定xp_CMDSHELL可执行情况
4.猜测表名和字过程段名
xxx.aspx?id=xxand0<>(selectcount(*)fromadmin)
判断是否存在admin这张表
SQLserver数据库的注入更为方便:
因为Sqlserver内置的一个存储过程xp_Cmdshell,可以直接通过添加系统管理员来进入后台
;execmaster..xp_cmdshell"netusernamepassword/add"//添加一个人名为name密码为password的账户
;execmaster..xp_cmdshell"netlocalgroupadministratorsname/add"//把name用户添加到本地组
然后就可以直接通过这个用户和密码以管理员身份进入后台了
上传木马图片之所以会可以显示出作用,是因为所有的文件最终都会被解析为HTML