sql手工注入有两种,第一种是union联合查询,第二种是Ascii逐字解码法
union联合查询语句如下:
首先判断一个网站有没有注入点的语句是 加单引号 ' 或 and 1=1 和and 1=2
and 1=1 网站返回正常,and 1=2 网站返回错误,证明有可能存在注入点
order by语句来查询数据库中存在多少数据表,如果order by 11返回正常 12 返回错误 那么数据表就是11
得到数据表的个数后,接着来用 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 ,11 from 表名 (如admin) 如果
union联合查询语句如下:
首先判断一个网站有没有注入点的语句是 加单引号 ' 或 and 1=1 和and 1=2
and 1=1 网站返回正常,and 1=2 网站返回错误,证明有可能存在注入点
order by语句来查询数据库中存在多少数据表,如果order by 11返回正常 12 返回错误 那么数据表就是11
得到数据表的个数后,接着来用 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 ,11 from 表名 (如admin) 如果
返回的网站页面是一个一个的数字如下图
那么就说明存在admin这个表,如果出现错误就说明不存在admin表(也有可能是你语句输错了 认真点哦),就需要换表名了,说是猜,就是猜,慢慢猜了~,接着 看到了图中我用红色矩形框,框住的数字,它所对应的就是 3 4 8 10 在1,2,3,4,5,6,7,8,9,10,11 里面把 3 4 8 10 替换成admin表里存储网站管理员账号和密码的字段,如user ,pwd 替换后就变成了 这样的 语句 and 1=2 union select 1,2,3,4,5,6,7,user,9,pwd,11 from admin 如下图所示
之前的8 和10 都被替换成了admin admin 是因为这个网站后台的用户名和密码默认的就是admin,这样管理员的帐户和密码就被我们爆了出来。 有时候密码会是md5加密的需