老手的sql注入攻击
时间:2011-02-07 来源:fdsajhg
apache+php,严格的firewall rule,只能从web进行xx,web目录可浏览,找到一个log文件,有1gb之大,看到很多人在尝试sql injection但没人成功。经过验证确实存在一个php+mysql注入,但遇到了问题,对方是mysql4.x,不能用系统表读表名的方式,只能暴 力猜了。许久没猜出来,看看有什么信息可以启发的。后来查看html源码,看到一些变量名为gs_xxxx,以gs开头,于是写个猜表字典:
gs_users
gs_user
gs_manage
gs_db
gs_news
gs_admin
gs_master
gs_members
…………
自动跑一下,结果还是没有跑出来。在这里卡了很久……有时候有注入就是在猜表名处给困住了。
再继续分析分析,多收集些信息以便掌握更多的命名规律:
xxxxxxx order by x
xxxxxxx order by x+1
xxxxxxx order by x+2
xxxxxxx order by x+3
…………
确定后,然后union select x,x,x,x,database()….
这样显示了库名为gsdbxxxx
中间是没有下划线的,也有可能是gsxxxxxx这样的命名习惯,结果真的猜出来gsuser一个!
然后猜出user,passwd
得到密码,找到后台成功登录
因为是apache 1.x,所以我想不会是php5
提示禁止php,就尝试a.php4这样,上传成功,又是被动过滤问题,搞定!
ps:
我觉得这篇文章会对很多人有启示性,很多人只是学了个技术活或者一些流程,漏洞人人会利用,但是玩法和水平却不尽相同。没有漫长的测试经历就很难会有丰富的经验与技巧的积累,也就很难有真正的提高。