
进入靶场

输入admin,123456看看回显


输入admin and 1=1和123456


过滤了一些,逐个尝试看看过滤了啥
试试空格


貌似没有被过滤
试试=


=被过滤了
试试union


正常使用
试试order by


被过滤了
试试select


没过滤
知=,order by被过滤了
用%23,#都可


报错了,原来是报错注入








发现字节数为3,原来即使order by用不了,也可以用union select一个一个试出来
问题又来了,找不到注入点
还是硬着头皮尝试一下


双写也试过,还是没什么用
一番下来就只知道了字段数
应该还有什么信息
查个源码

这道题的提交方式竟然是post,也对,提交的内容在url处没有显示过
用一下BP,说不定在请求与响应中会有什么

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
需要解码


连续解码2次得到信息
select * from user where username = '$name'
用到的解码工具CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码
这个线索我不怎末会用,看了其他人的wp,接下来该判断3个字段分别对应什么
一般是id,username,password


如果不等于admin才会往后查询,等于admin就不会查询后面了
用户名对了,猜测密码
mysql在查询不存在的数据时会自动构建虚拟数据,一般数据要么明文,要么MD5


202cb962ac59075b964b07152d234b70

????????
同样的东西,换个行就行了??????
不理解
但总是做完了
笔记
1,order by用不了的情况下,可以用union select直接猜测
2,SQL也有可能会用到bp,查看源代码之类的
3,mysql在查询不存在的数据时会自动构建虚拟数据,一般数据要么明文,要么MD5
4,知道字段数后可以猜测每个字段对应的内容(之前是利用注入点查看信息)
疑问
为什么密码是123??????