网站建设全部流程,网页网站制作维护,ip域名查询网站入口,自己做下载网站吗SQL联合查询#xff0c;注意有源码看源码#xff0c;Base64以及32的区别#xff0c;MD5碰撞
打开后有登录框#xff0c;先随意登录尝试 只有输入admin才是返回wrong pass#xff01; 其他返回wrong user 所以用户名字段一定要输入admin
养成好习惯#xff0c;先查看源码…SQL联合查询注意有源码看源码Base64以及32的区别MD5碰撞
打开后有登录框先随意登录尝试 只有输入admin才是返回wrong pass 其他返回wrong user 所以用户名字段一定要输入admin
养成好习惯先查看源码
看到一段被注释掉的
MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5 这里看上去像是Base编码但是不知道哪一种查了一下这个肯定是Base32 区分base64、32、16 Base64 包含大写字母A-Z,小写字母a-z数字0-9以及/; Base32: 而Base32中只有大写字母A-Z和数字234567 Base16: 而Base16就是16进制他的范围是数字(0-9)字母ABCDEF 顺便说一句当ASCll用Base加密达不到所对应的位数的时候用号补齐 在这里附带由三种Base加密的:I love you Base64:SSBsb3ZlIHlvde8gQ Base32:JEQGY33WMUQHS33V566IC Base16:49206c6f766520796f75efbc81 原文链接https://blog.csdn.net/qq_40836885/article/details/83793972 解码三次拿到一句select * from user where username $name 这道题的注入点很明显在username 尝试1’or’1返回 do not hack me or这些肯定被过滤了
尝试联合查询注入
替换’admin’的位置可以发现其应该要在第二个字段上才正确
到这里密码pw要怎么输入呢注意本题给了源码肯定要看的。。 我们知道登录后的页面是search.hp 先看看这个页面的代码 果不其然当数组arr[1]为‘admin’进行判断 当password被md5处理后的值和数组arr[2]中的值一致 输出flag 那么问题是这个password是我们输入的还是联合查询里面的核对一下 回头看代码 可以看到数组arr是从$result中读取的$result来自sql查询 同时password来自于POST传参 由练习4知道 md5(数组) 返回 NULL 所以payload我们可以写做namead union select 1,admin,NULL #pw[]111中间不要乱加空格比如在符号的两边
flag{d81fdb9a-4984-4d4a-9f9a-2784d03168cd}