比较激动,慢慢来QAQ
‘’第一题是比较轻松的。flag:NYSEC{NYSEC}
2.png
第二题还是比较轻松的flag:NYSEC{I_will_submit_write_up}
3.png
第三题只有一个狗,我盯着他看了半天QAQ,所以就直接抓包了。如下图 4.png
在repeter中正常的分析一下响应包就看到了flag。
flag: NYSEC{burp_is_so_cool}
这是第四题 5.png
当你输入口令时就会发现输到一半就不让输入了。所以我直接右键,查看源代码 5.1.png
输入框的最大字数限制为10所以~
5.2.png
然后正常的输入就ok了
flag:nctf{follow_me_to_exploit}
这是第五题 5.png
题目是cookie,所以我就直接抓包了,并发现在请求包的地方有问题 2.png 3.png
login是0,我尝试性的该为1然后就有flag了 4.png
flag:nctf{cookie_is_different_from_session}
这是第六题 2.png
要想拿到flag,就要让if里面为true。逐行分析~
$filename=__FILE__;
此时该变量会变为某个文件的路径,包含一些特殊字符,斜线等。
$NYSEC="666";
extract($_GET);
虽然$NYSEC有值了,但是仍然可以通过GET方式赋值给NYSEC和filename
trim(file_get_contents($filename));
file_get_contents函数可以将文件的内容转化为字符串
trim函数可以将第二个可选项不选的话默认就会将一些特殊字符删除
这样最后的conten就是一个脱了外衣的$filename
所以可以认为只需要NYSEC和filename相等就可以echo出来flag了
所以在URL中输入?NYSC=&filename即可,当然你也可以让他为空,或者任意的字符串
可以看到,让他等于任意字符串仍然可以输出flag
NYSEC{PHP_is_the_best_language}
第七题 s.png
进来之后可以直接在list界面看到URL中是通过GET方式传输ID的,所以在这里就可能存在注入点,我们先输入一个 ' 进去就可以发现页面有回显,所以注入点无意了 闭合方式也是最简单的一个单引号,所以我们就可以开始查询列数了 使用order by 函数
s3.png
s2.png 可以看到 4列是不存在的,所以就有3列。随后我们进行的就是使用联合查询了,这也是为什么必须要查询列数的原因,在使用联合查询的时候,我们必须保持列数一致。 s4.png
使用联合查询还是需要有一个地方注意的,就是id=-1这个地方,当id=1时,是有内容可以展示的,所以让id为一个0或者负数就可以看到显示位了,可能有一些会有对id的限制,那么就让id无限大,比如9999999999就ok了。
好的,接下来就是注入过程了,首先我们要考虑的就是三个地方
1.服务器的版本,在MYSQL>=5.0版本中自在information_schema库,它提供了访问数据库元数据的方式,元数据就是关于数据的数据,相当于所有库的目录。这个信息
为我们提供了注入的可能,不然没法注入就。
2.查出当前使用者是谁,如果是root的话,不出意外的话权限就很高,可以进行增删改查,也不排除特殊情况
3.查找数据库名称 database(),表名 table_name(),还有字段名column_name()。
有了这些我们就可以脱光他的衣服,想看哪里都可以了~~哈哈哈
这里我user()忘记查了,不过做题的时候是看了的,的确是root用户
s6.png
上边是数据库名,下边是表名,期待已久的flag终于出现了,下面就是看看字段了 s7.png
ok ,到这里离flag只有一步之遥~ s8.png
由于是第一次玩sql注入,所以写的比较杂乱,所以有人看的话就请慢慢体会...QAQ
flag:NYSEC{asdx9204lsd84alnziwofg3}
网友评论