FlatScience
难度系数: 1星
题目来源: Hack.lu-2017
题目描述:暂无
题目场景: 略
题目附件: 暂无
一、分析
点击打开场景,发现都是文件下载的内容,是几篇英文文献
上一题有用到的robots.txt,构造一下http://IP:端口/robots.txt
果然有重要内容:
二、实操
分别进入像个网站,发现有一个是默认是admin账号,尝试使用admin账号进行登录,但是并没有什么反馈
然后尝试使用admin账号在login页面进行登录
测试了很多数据发现输入admin’时会出现报错
根据报错SQLLite3找到对应的查询数据库的代码
代码:
CppSQLite3Queryquery = db.execQuery("select * fromtarget_table");
while(!query.eof())
{
cout<<"name:"<<query.getStringField("name")<<"age : "<<query.getIntField("age")<<endl;
query.nextRow();
}
query.finalize();
CppSQLite3Query是一个查询返回对象,查询完后可以利用此类。这里就使用CppSQLite3DB的一个函数
execQuery,只要将查询sql传入即可。
eof函数:判断是否还有数据;
nextRow函数:移到下一条记录;
getStringField函数:获得相应字段的内容,以字符串形式返回;
getIntField函数:获得相应字段的内容,以整形形式返回。
通过分析此处应该存在SQL注入
注意我们在进行漏洞查找的过程中应该要结合浏览器的开发工具一起进行,发现网址泄露了某些参数或者网址,根据GET请求,我们能够迅速判断是参数
构造?debug参数出现源码泄露
找到关键代码SQL语句:
"SELECT id,name from Users where name='".$user."' and password='".sha1($pass."Salz!")."'"
通过SQL语句注入构建我们设计出如下查询的SQL语句:
' union select name,sql from sqlite_master--
然后查询到返回包里面有Set-Cookie字段